我們常用的Node.js版本可分為三種,一種是當前正在積極開發的版本(Current),一種是最新的LTS版本(Active LTS),還有一種是上一代依然在維護中的LTS版本(Maintenance LTS)。若想在Linux作業系統上安裝Node.js,要怎麼樣才能夠安裝最新或是指定版本的Node.js呢?



Node.js的版本管理器

我們雖然可以利用Linux發行版軟體源來直接安裝Node.js,但通常只能安裝到比較舊的版本,而且也不能隨時進行版本的切換。這對於開發或是執行需要特定的Node.js版本才能執行的Node.js程式來說是不太方便的,所以選擇使用Node.js的版本管理器是很重要的。最常用的版本管理器有「nvm」和「n」兩個。

nvm是使用POSIX-compliant shell腳本製作的Node.js版本管理器,它可以取得各種合適的Node.js版本並根據不同的Node.js版本建立出獨立的執行環境。

n是使用Bash腳本製作的Node.js版本管理器,它可以取得各種合適的Node.js版本,並且可以在同一個環境下進行Node.js版本的切換。如果我們只是想要快速升級Node.js的版本,且對於不同Node.js版本間所使用的設定和全域套件並無獨立需求的話,n會比nvm還要更簡單易用,而本篇文章也是以n來做Node.js的安裝及管理示範。

n

n雖然是Node.js的版本管理器,但官方並沒有提供一個便利的方式來安裝n。這讓許多人會用npm去安裝n,就會造成很詭異的問題,因為npm需要Node.js執行環境才能被執行,那麼在一開始還沒有n的時候,Node.js要該哪裡取得比較好?

所幸有其它開發者注意到n的問題,替它開發了基於Bash的安裝腳本,稱為n-install。以下是它的GihHub連結:

安裝n和Node.js

藉由n-install腳本,執行以下指令就可以安裝最新的n和Node.js (Active LTS)。

curl -fsSL https://git.io/n-install | bash -s -- -y

linux-install-nodejs

n和Node.js的東西都會被安裝到家目錄下的n目錄中。此時我們可以開啟新的終端機或是在現有的終端機上執行source ~/.bashrc來套用新的環境變數,就可以開始使用nnodenpm等指令了!

由於n-install腳本會將N_PREFIX環境變數設為家目錄下的n目錄,因此全域套件都會被放置在~/n/lib/node_modules下。在管理全域套件或是更改Node.js的版本時,不使用sudo指令。

用n來安裝最新的Node.js和npm

在終端機執行以下指令就可以安裝最新的,即當前正在積極開發的Node.js和npm:

n latest

linux-install-nodejs

用n來安裝指定版本的Node.js和npm

使用以下指令可以查看所有Node.js的版本。

n ls-remote --all

linux-install-nodejs

若想要安裝指定的Node.js版本,只要在n這個指令後直接接上版本號碼就好了,例如要安裝18.18.2,指令為:

n 18.18.2

不過一般我們不太需要去管修訂版本號,甚至是次版本號。所以如果想要直接安裝「Node.js 18.x最新版」,指令可以直接寫成:

n 18

切換Node.js的版本

n會把不同的版本的Node.js放在不同的檔案目錄中,我們可以直接執行以下指令來查看先前已經安裝過哪些版本的Node.js。

n

linux-install-nodejs

當要安裝的Node.js版本,n先前已經安裝過的話,n只會純粹做切換,而不會重新再透過網路下載檔案。

清理Node.js

由於n會把不同的版本的Node.js放在不同的檔案目錄中,因此時間一久,在不斷更新下,系統環境會累積很多已經用不到的舊版Node.js。使用以下指令,可以將非目前正在使用的Node.js版本全部移除:

n prune