天天看點

Mac前端裝機必備之-n 子產品管理多個版本的node.js

安裝

由于您可能已經擁有了

node

,是以最簡單的安裝方法

n

是通過

npm

sudo npm install -g n           

安裝後,将版本

n

緩存在環境變量指定的目錄的

node

子目錄

n/versions

N_PREFIX

,預設為

/usr/local

; 而主動 

node

版本直接安裝在

N_PREFIX

為了避免需要

sudo

n

npm

全球的安裝,建議您或者使用安裝到你的主目錄

N_PREFIX

,或采取系統目錄的所有權:

# make cache folder (if missing) and take ownership
sudo mkdir -p /usr/local/n
sudo chown -R $(whoami) /usr/local/n
# take ownership of node install destination folders
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share      

如果

npm

尚不可用,一種引導安裝的方法:

curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
bash n lts
# Now node and npm are available      

或者,您可以克隆此存儲庫并

make install      

n

bin/n

環境變量中指定的目錄

$PREFIX

/usr/local

(請注意,您可能需要使用

sudo

)。要

n

在自定義位置(例如

$CUSTOM_LOCATION/bin/n

)安裝,請運作

PREFIX=$CUSTOM_LOCATION make install

第三方安裝程式

在具有Homebrew的 macOS上,您可以安裝n公式。

brew install n      

在Linux和macOS上,n-install允許直接從GitHub安裝;例如:

curl -L https://git.io/n-install | bash      

正安裝多組都

PREFIX

N_PREFIX

$HOME/n

,安裝

n

$HOME/n/bin

,修改支援炮彈的初始化檔案導出

N_PREFIX

,并添加

$HOME/n/bin

PATH

,并安裝最新的LTS 

node

版本。

是以,它

n

本身及其

node

管理的所有版本都托管在一個可選的可配置目錄中,您以後可以使用随附的

n-uninstall

腳本将其删除。

n-update

n

自身更新為最新版本。有關更多詳細資訊,請參見n-install存儲庫。

安裝節點版本

隻需執行

n <version>

以下載下傳并安裝的版本

node

。如果

<version>

已經下載下傳,

n

将從其緩存安裝。

n 10.16.0
n lts      

n

自行執行以檢視下載下傳的版本,并安裝所選的版本。

$ n

  node/4.9.1
ο node/8.11.3
  node/10.15.0

Use up/down arrow keys to select a version, return key to install, d to delete, q to quit      

(您也可以使用

j

k

在不使用箭頭的情況下向上或向下導航。)

如果活動節點的版本在安裝後沒有更改,請嘗試打開新的外殼,以防發現版本過舊。

指定節點版本

有多種方法可以指定

n

指令的目标節點版本。大多數指令使用最新的比對版本,并 

n ls-remote

列出多個比對版本。

數字版本号可以是完整或不完整的,并帶有可選的前導

v

  • 4.9.1

  • 8

    :8.xy版本
  • v6.1

    :6.1.x版本

有兩個特别有用的版本的标簽:

  • lts

    :最新的長期支援正式釋出
  • latest

    current

    :最新正式釋出

第一行有一個标簽,用于從檔案中讀取目标版本:

  • auto

    :從

    .n-node-version

    檔案讀取版本

支援釋出流:

  • argon

    boron

    carbon

    :代号為LTS版本流

最後一種形式是使用遠端下載下傳檔案夾的名稱指定其他可用的發行版,還可以選擇後面跟随完整或不完整的版本。

  • chakracore-release/latest

  • nightly

  • test/v11.0.0-test20180528

  • rc/10

删除版本

删除一些緩存的版本:

n rm 0.9.4 v0.10.0      

除去目前版本以外的所有緩存版本:

n prune      

删除已安裝的節點和npm(不影響緩存的版本)。這對于恢複到節點的系統版本(如果位于不同的位置),或者如果您不再希望使用節點和npm,或者正在切換到其他管理它們的方式很有用。

n uninstall      

使用下載下傳的節點版本而不重新安裝

有三個指令可直接使用您下載下傳的版本

node

,而無需重新安裝。

您可以顯示下載下傳版本的路徑:

$ n which 6.14.3
/usr/local/n/versions/6.14.3/bin/node      

node

使用以下

n run

指令運作下載下傳的版本:

n run 8.11.3 --debug some.js      

或執行指令和

PATH

修改,以便

node

npm

将從下載下傳的

node

版本。(注意:這

npm

将與另一個空的全局node_modules目錄一起使用,您不應以這種方式安裝全局子產品。)

n exec 10 my-script --fast test      

保留npm

一個

node

安裝通常包括

npm

為好,但你可能希望保留的更新

npm

,并

npx

讓他們出的安裝使用

--preserve

(需要rsync的):

$ npm install -g npm@latest
...
$ npm --version
6.13.7
$ n -p 8
   installed : v8.17.0
$ npm --version
6.13.7      

您可以通過設定

N_PRESERVE_NPM

為非空字元串來将其設定為預設值。

export N_PRESERVE_NPM=1      

無論環境變量如何,您都可以明确獲得所需的行為:

n --preserve nightly
n --no-preserve latest      

可以從下載下傳指令行幫助

n --help

列出可下載下傳的比對遠端版本:

n ls-remote lts
n ls-remote latest
n lsr 10
n --all lsr      

列出緩存中的下載下傳版本:

n ls      

顯示診斷以幫助解決問題:

n doctor      

自訂來源

如果您想使用與預設https://nodejs.org/dist/具有相同布局的其他節點鏡像,​​則可以定義

N_NODE_MIRROR

。最常見的例子是中國的使用者可以定義:

export N_NODE_MIRROR=https://npm.taobao.org/mirrors/node      

還有

N_NODE_DOWNLOAD_MIRROR

一個與預設https://nodejs.org/download具有相同布局的其他鏡像

定制架構

預設情況下,

n

選擇與您的系統體系結構比對的二進制檔案,例如,

n

将為64位系統下載下傳64位二進制文​​件。您可以使用

-a

--arch

選項覆寫它。

下載下傳并使用最新的32位版本的

node

n --arch x86 latest      

可選環境變量

n

指令

/usr/local

預設下載下傳并安裝到,但是您可以通過定義覆寫此位置

N_PREFIX

。要更改位置

$HOME/.n

,請在外殼初始化檔案中添加以下内容:

export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH      

n

如果系統上的tar很可能支援xz解壓縮,則預設使用xz壓縮節點tarball進行下載下傳。您可以通過将環境變量設定為零或非零來覆寫自動選擇:

export N_USE_XZ=0 # to disable
export N_USE_XZ=1 # to enable      
n install --use-xz nightly
n install --no-use-xz latest      

簡單來說:

  • N_NODE_MIRROR

    :請參閱自定義來源
  • N_NODE_DOWNLOAD_MIRROR

  • 支援NO_COLOR和CLICOLOR = 0以控制ANSI顔色代碼的使用
  • N_MAX_REMOTE_MATCHES

    更改預設的

    ls-remote

    最大20個比對版本
  • N_PRESERVE_NPM

    :請參閱保留npm

怎麼運作的

n

下載下傳預編譯的

node

軟體包并安裝到單個字首(例如

/usr/local

)。這将覆寫以前的版本。該

bin

位置的檔案夾應位于您的檔案夾中

PATH

(例如

/usr/local/bin

)。

下載下傳内容儲存在緩存檔案夾中,以用于重新安裝。也可以使用

n which

n run

和進行有限的下載下傳

n exec

全局

npm

軟體包不會被安裝更改

npm

,隻是它本身是

node

安裝的一部分。

繼續閱讀