Nvm 管理不同版本的 node 與 npm

Nvm 管理不同版本的 node 與 npm

nvmNodeJS 的多版本管理工具,有點(diǎn)類似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官方推薦是使用 nvmwnvm-windows

卸載已安裝的全局 node/npm

在官網(wǎng)下載的 node 安裝包,運(yùn)行后會自動安裝在全局目錄,其中node 命令在 /usr/bin/node ,npm 命令在全局 node_modules 目錄中,具體路徑為 /usr/lib[lib64]/node_modules/npm

安裝 nvm 之后最好先刪除下已安裝的 node 和全局 node 模塊:

npm ls -g --depth=0 // 查看已經(jīng)安裝在全局的模塊,以便刪除這些全局模塊后再按照不同的 node 版本重新進(jìn)行全局安裝

sudo rm -rf /usr/lib[lib64]/node_modules // 刪除全局 node_modules 目錄
sudo rm /usr/bin/node // 刪除 node
cd /usr/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm // 刪除全局 node 模塊注冊的軟鏈

// suse uninstall zypper install package
zypper uninstall node

Install nvm

To install or update nvm, you can use the install script using cURL:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash

or Wget:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash

The script clones the nvm repository to ~/.nvm and adds the source line to your profile (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc).

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

can customize the install source, directory, profile, and version using the NVM_SOURCE, NVM_DIR, PROFILE, and NODE_VERSION variables. Eg: curl ... | NVM_DIR=/usr/local/nvm bash for a global install.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | NVM_DIR=/usr/local/nvm bash

Verify installation

command -v nvm
or which nvm

Install node/npm and Change version

nvm ls
nvm install stable|node // 安裝最新穩(wěn)定版 node,現(xiàn)在是 6.3.1
nvm install 4.4.7 // 安裝 4.4.7 版本
nvm install 0.12.12 // 安裝 0.12.12 版本

// 說明:以下模塊安裝僅供演示說明,并非必須安裝模塊
nvm use node
nvm run node --version
nvm exec 4.2 node --version
nvm which 6.3.2
nvm use 0 // 切換至 0.12.12 版本
npm install -g mz-fis #安裝 mz-fis 模塊至全局目錄,安裝完成的路徑是 ~/.nvm/versions/node/v0.12.12/lib/mz-fis
nvm use 4 // 切換至 4.4.7 版本
npm install -g react-native-cli // 安裝 react-native-cli 模塊至全局目錄,安裝完成的路徑是 ~/.nvm/versions/node/v4.4.7/lib/react-native-cli

nvm alias default 0.12.12 // 設(shè)置默認(rèn) node 版本為 0.12.7
  • node: this installs the latest version of node
  • iojs: this installs the latest version of io.js
  • stable: this alias is deprecated, and only truly applies to node v0.12 and earlier. Currently, this is an alias for node.

Use .nvmrc file, Configing projects use node version

如果默認(rèn) node 版本(通過 nvm alias 命令設(shè)置的)與項(xiàng)目所需的版本不同,則可在項(xiàng)目根目錄或其任意父級目錄中創(chuàng)建 .nvmrc 文件,在文件中指定使用的 node 版本號:

cd <項(xiàng)目根目錄>  // 進(jìn)入項(xiàng)目根目錄
echo 4 > .nvmrc // 添加 .nvmrc 文件
nvm use // 無需指定版本號,會自動使用 .nvmrc 文件中配置的版本
node -v // 查看 node 是否切換為對應(yīng)版本

nvm 與 n 的區(qū)別

node 版本管理工具還有一個(gè)是 n 命令,n 命令是作為一個(gè) node 的模塊而存在,而 nvm 是一個(gè)獨(dú)立于 node/npm 的外部 shell 腳本,因此 n 命令相比 nvm 更加局限。

由于 npm 安裝的模塊路徑均為 /usr/lib[lib64]/node_modules ,當(dāng)使用 n 切換不同的 node 版本時(shí),實(shí)際上會共用全局的 node/npm 目錄。 因此不能很好的滿足『按不同 node 版本使用不同全局 node 模塊』的需求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容