【Nodejs】使用 nvm 管理不同版本的 node 與 npm,與nodjs安裝方法


在我們的日常開發中經常會遇到這種情況:手上有好幾個項目,每個項目的需求不同,進而不同項目必須依賴不同版的 NodeJS 運行環境。如果沒有一個合適的工具,這個問題將非常棘手。

nvm 應運而生,nvm 是 Mac 下的 node 管理工具,有點類似管理 Ruby 的 rvm,如果需要管理 Windows 下的 node,官方推薦使用 nvmw 或 nvm-windows。不過,nvm-windows 並不是 nvm 的簡單移植,他們也沒有任何關系。但下面介紹的所有命令,都可以在 nvm-windows 中運行。


這里只提供window安裝方法,其他系統請參考原文,這里是對安裝方法的一些總結和經驗,歡迎參考

簡而言之,使用nvm可以切換不同node和npm版本,更多nvm方法在最底部

 

第一步

首先最重要的是:一定要卸載已安裝的 NodeJS,否則會發生沖突。

首先打開nodejs所在目錄,找到卸載文件文件雙擊中卸載即可,卸載后把沒有卸載掉的文件進行刪除,

打開系統設置刪除環境變量,點擊確定-確定。(我這里演示,所以最后點了取消)

 

然后下載 nvm-windows 最新安裝包,

 

下載nvm-setup.zip直接安裝即可。

 

 

第二步

安裝nvm的時候會讓你選擇兩個安裝路徑,第一個是nvm的安裝目錄,也就是根目錄,第二個是nodejs版本的目錄,

這里我都選擇安裝在了D盤

 

 

第三步

安裝完成后打開cmd控制台,

(nodejs版本會持續更新,所以大家可以進入官網查看版本號,或者通過命令 nvm ls available 查看最新nodejs版本  )

通過命令

nvm install 10.16.2 

進行安裝

(這里我安裝了兩個版本,一個最穩定10.16.2 ,和一個最新12.8.0)

 

然后找到對應版本進行安裝即可

 

如果安裝失敗可以切換成淘寶源

進入nvm安裝目錄,修改settings.txt的內容為:

root: D:\nvm
path: D:\nodejs
arch: 64
proxy: none
node_mirror: http://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

 

 

 

 這里已經安裝過了,所以直接顯示already installed

 

此時就可以進行切換nodejs版本了,

如我現在是10.16.2    要切換到12.8.0,代碼如下

 

nvm use 12.8.0

 

 

 

 

第四步

並不是說NodeJS和NPM安裝好了以后就能直接使用了,這也是新手經常犯的一個錯誤之一。

因為默認情況下,NPM安裝的模塊並不會安裝到NodeJS的程序目錄,比如上面安裝的時候我們設置的D:\nodejs\目錄,

而是直接安裝到了C:\Users\Administrator目錄下

 

這里我們要分兩步,第一步修改NPM的緩存目錄和全局目錄路徑,將對應的模塊目錄改到D盤nodejs的安裝目錄,第二步是配置npm和nodejs的環境變量,這樣nodejs才能正確地調用對應的模塊。

我們先來做第一步,在D盤nodejs目錄下創建兩個目錄,分別是node_cache和node_global,這是用來放安裝過程的緩存文件以及最終的模塊配置位置。配置完成后,執行下面這兩個命令:

npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"

(如果配置后不想默認安裝到這個位置,可以在c盤全局搜索 .npmrc 文件,把這個代碼刪除即可)

將npm的全局模塊目錄和緩存目錄配置到我們剛才創建的那兩個目錄:

 

 

然后我們打開cmd命令行界面,在使用命令安裝剛才的cluster模塊,命令如下:

npm install cluster -g

然后打開剛才創建的node_global目錄,可以看到此時cluster目錄就安裝到這個目錄底下了。

 

 

 

第五步

 

安裝全局npm

安裝node的時候,npm其實也已經一起安裝了。因為nvm可以管理多個版本的node,如果每次添加一個node版本都要安裝一堆的包很麻煩,如果有一個npm可以讓各個版本的node共用,就不會這么麻煩了,這就是為什么我們要配置一個全局的npm的原因。簡單的三步就可以配置一個全局的npm

1.  npm config set prefix "D:\nvm\npm"//配置用npm下載包時全局安裝的包路徑
2.  npm install npm -g --registry=https://registry.npm.taobao.org //安裝全局npm,不同的node都使用這個npm,想更新全局的npm的話首先刪除全局路徑(就是上一行命令的地址,可以使用npm config ls查看)下的npm,再執行一次這個命令即可
3.  在用戶變量中添加 NPM_HOME=D:\nvm\npm,path中添加%NPM-HOME%

 

 

然后我們來配置npm的環境變量和nodejs的環境變量。在計算機圖標上點右鍵,選屬性,然后點擊高級系統配置,

彈出來的新窗口右下角有個環境路徑,點擊去,就能看到環境路徑的配置界面,我們點擊新建。然后在彈出來的窗口里,

變量名填:NODE_PATH

變量值填:D:\nodejs\node_modules\

填寫好后點確定,然后就能看到我們配置好的NPM環境路徑。

 

此時還需要修改一些nodejs默認的模塊調用路徑,因為模塊的安裝位置變了,如果nodejs的命令還到原來的位置去找,

肯定是找不到安裝的模塊了。我們在環境變量窗口,選擇Path,然后點擊右下角的編輯,然后選擇npm那個。

點擊右邊的編輯,將其修改為:D:\nodejs

然后點確定,保存這個配置。

 

這個時候所有的配置工作才算完成了,然后打開一個新的cmd窗口。先輸入命令:

node

進入nodejs的交互式命令控制台,然后輸入:

require('cluster')

如果能正常輸出cluster模塊的信息,說明上面的所有配置就算生效了。

 

 

 

 第六步

我們還需要做的最后一個工作是,將npm的模塊下載倉庫從默認的國外站點改為國內的站點,這樣下載模塊的速度才能比較快,只需要一個命令即可,命令是:

(記得先按兩下Ctrl+c退出nodejs)

npm install cluster --registry https://registry.npm.taobao.org

上面的命令是臨時使用淘寶鏡像的地址來安裝cluster模塊。速度非常快。只用了不到0.8秒。

而我們上面第一次安裝的時候用了差不多3秒多,速度快了3倍多。

 

如果想一直使用這個源的地址,那么可以使用下面這個命令來配置。

npm install -g cnpm --registry=https://registry.npm.taobao.org

配置好國內源后,安裝一個較大的模塊express,只用了不到6秒多一點,速度提升還是非常可觀的

cnpm install express -g 

注意,原來安裝方法是npm install [name]   ,這里使用淘寶鏡像后安裝變成  cnpm install [name]

很多難以安裝的包如node-sass等都可以用這個方法安裝

如果使用cnpm失敗說明 上述命令沒有配置成功,請再重試一遍

這里-g的意思是全局安裝

 

至此,nodejs和npm在windows上的配置就全部完畢。

 

 

 

 

 

 


以下是通過nvm切換nodejs版本的命令

安裝多版本 node/npm

例如,我們要安裝4.2.2版本,可以用如下命令:

nvm install 4.2.2

 

nvm 遵守語義化版本命名規則。例如,你想安裝最新的 4.2 系列的最新的一個版本的話,可以運行:

nvm install 4.2

  

nvm 會尋找 4.2.x 中最高的版本來安裝。

你可以通過以下命令來列出遠程服務器上所有的可用版本:

nvm ls-remote

  

Windows 的話,就是:

nvm ls available

  


在不同版本間切換

每當我們安裝了一個新版本 Node 后,全局環境會自動把這個新版本設置為默認。

nvm 提供了 nvm use 命令。這個命令的使用方法和 install 命令類似。

例如,切換到 4.2.2:

nvm use 4.2.2

  

切換到最新的 4.2.x:

nvm use 4.2

  

切換到 iojs:

nvm use iojs-v3.2.0

  

切換到最新版:

nvm use node

  

每次執行切換的時候,系統都會把 node 的可執行文件鏈接放到特定版本的文件上。

我們還可以用 nvm 給不同的版本號設置別名:

nvm alias awesome-version 4.2.2

  

我們給 4.2.2 這個版本號起了一個名字叫做 awesome-version,然后我們可以運行:

nvm use awesome-version

  

下面這個命令可以取消別名:

nvm unalias awesome-version

  

另外,你還可以設置 default 這個特殊別名:

nvm alias default node

  


列出已安裝實例

nvm ls

  

其他命令

直接運行特定版本的 Node

nvm run 4.2.2 --version

  

在當前終端的子進程中運行特定版本的 Node

nvm exec 4.2.2 node --version

  

確認某個版本Node的路徑

nvm which 4.2.2

  

安裝 Node 的其他實現,例如 iojs(一個基於 ES6 的 Node 實現,現在已經和 Node 合並)

nvm install iojs-v3.2.0

  

快捷命令:

  • nvm install node 安裝最新版 Node
  • nvm install iojs 安裝最新版 iojs
  • nvm install unstable 安裝最新不穩定版本的 Node

原文鏈接:http://bubkoo.com/2017/01/08/quick-tip-multiple-versions-node-nvm/

原文鏈接:https://jingyan.baidu.com/article/48b37f8dd141b41a646488bc.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM