在我們的日常開發中經常會遇到這種情況:手上有好幾個項目,每個項目的需求不同,進而不同項目必須依賴不同版的 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