指路牌
- nvm-windows
- nvm鏡像源設置
- nvm使用過程中的坑
- nvm安裝成功,node安裝成功,能工作,但是npm使用時報錯
適用場景
接手祖傳舊代碼,node版本太高導致無法運行成功。或同時需要使用多個版本node。
環境
windows 10 64bit
參考博客
雨臨Lewis -- Windows下完全卸載node.js並安裝node.js的多版本管理工具nvm-windows
蓓蕾心晴 -- windows下nvm安裝node之後npm命令找不到問題解決辦法
背景
不註明環境和版本的教程都是耍流氓,在剛開始接觸一門新技術或者新框架時,我們時常會去搜索別人的hellow world教程,但是很氣的是,按照步驟無論如何都是不成功,
在我碰到的這類的坑,基本都是環境和版本不同導致的.....(除了和網路相關的)
例如最近看的一位前輩關於以太坊教程,和現在還沒爬出坑的接手的一個2年前Angular的項目。本篇是下一篇關於以太坊文章的前置文章,因爲那一篇教程需要使用舊版本的node。
思路
- 卸載node
- 刪除路徑以及殘留文件
- 安裝nvm-windows
- 配置鏡像源
步驟
-
卸載系統上現有node(如果有)
此處基於windows下nvm安裝node之後npm命令找不到問題解決辦法,在此基礎上簡化和完善。
- 在卸載程序中卸載node
- 在環境變量中刪除所有與node相關的路徑(無論是user級,還是system級)
-
刪除以下路徑的文件(可能只有部分文件纔有)
C:Program Files (x86)nodejs
C:Program Filesnodejs
C:Users{User}AppDataRoamingnpm
C:Users{User}AppDataRoamingnpm-cache
C:Users{User}node_modules (在我電腦上的路徑)
- 下載最新版nvm並安裝nvm-setup.zip
- 更換鏡像源
在 路徑 C:\Users\{User}\AppData\Roaming\nvm\settings.txt
下添加以下兩條
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
此時如果你還仔細觀察,會發現C:\Program Files
下的nodejs問家家其實是一個快捷方式,指向的是nvm的安裝路徑C:\Users\i353667\AppData\Roaming\nvm
下對應的node版本。
- nvm的使用
# get available node version list
nvm list available
# install specific node version you need
nvm install The_Version_You_Need
# list the node you have installed in your PC
nvm list
# switch node version you need
nvm use The_Version_You_Need
錯誤處理
在Windows上nvm的常見錯誤解決方案基本都能搜索到,有一個特殊的我沒檢索到的這裏列一下。
- 現象:nvm install指定版本的node,並切換後,使用node指令正常,比如
node --version
,但是使用npm
指令會報錯,且報錯根據node 版本會不同,但是根本上都是npm找不到。此時如果你打開C:\Users\{User}\AppData\Roaming\nvm\v9.11.1\node_modules
,發現沒有npm文件夾,那就是這個問題。 - 解決方案
卸載當前版本,重新安裝。有時我重複了兩次才成功,成功標誌就是node_modules文件夾下npm文件夾出現,或者命令行調用npm不報錯。
要獲取更多Haytham原創文章,請關注公衆號"許聚龍":