Window / Mac 系統(tǒng) nvm 安裝使用指南

最近給家里電腦重裝系統(tǒng),都重新安裝了 nvm,就記錄了一下,也方便大家避坑

簡介

nvm 是什么?和 npm 是什么關(guān)系?

  • npm:是 nodejs 包的管理工具,在安裝 node 的時(shí)候,npm 也會(huì)自動(dòng)一起安裝,因?yàn)槊總€(gè) node 版本都有對(duì)應(yīng)的 npm 版本
  • nvm:是 node 版本管理工具,可以同時(shí)在電腦上安裝多個(gè)不同版本 node,可以非常方便的操作 node 不同版本的切換、安裝、查看等等

nvm 的好處?

比如你電腦上可能跑多個(gè)項(xiàng)目的時(shí)候,且不同項(xiàng)目所需 node 版本不一致時(shí);

比如升級(jí)了項(xiàng)目的 node 版本,結(jié)果發(fā)現(xiàn)有問題,需要再換回之前的版本時(shí);

如果每次都卸載電腦上的 node 再去下載新的版本,可就太坑了,所以 nvm 來了,直接一條命令讓我們切換不同的 node 版本,非常方便

如果你的電腦已經(jīng)安裝了 node,那么在安裝 nvm 之前要先卸載掉,避免后面產(chǎn)生不必要的沖突

Window 控制面板程序卸載或者用其他的應(yīng)用卸載都行

Mac 卸載:

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

Mac 安裝 nvm

Mac nvm 文檔

安裝命令

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

或者

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

命令中的 v0.39.2 是版本號(hào),是 Mac 當(dāng)前最新版,如果需要安裝不同版本,修改這里即可

安裝完成后,在命令行窗口輸入 nvm 回車,安裝成功會(huì)出現(xiàn)滿滿一頁的各種信息,如果只有 nvm: command not found,就說明沒安裝成功

沒安裝成功的話,執(zhí)行 echo $0 命令,看下當(dāng)前的 shellbash 還是 zsh

如果是 bash 安裝失敗基本是沒有 .bash_profile 這個(gè)文件,可以使用 open .bash_profile 命令打開這個(gè)文件試下,打不開就說明沒有,那么執(zhí)行下面命令創(chuàng)建一個(gè),再重新執(zhí)行上面的安裝命令即可

# 創(chuàng)建 .bash_profile 文件
touch ~/.bash_profile

如果是 zsh,那就打開 open .zshrc 文件,在里面添加一行 source ~/.bash_profile,如果打不開這個(gè)文件,就先創(chuàng)建一個(gè),再添加,再重新執(zhí)行上面的安裝命令即可

# 創(chuàng)建 .zshrc 文件
touch ~/.zshrc

# 創(chuàng)建完成,再打開,在里面添加這個(gè)
source ~/.bash_profile

安裝成功后怎么使用,請(qǐng)繼續(xù)看

Window 安裝 nvm

nvm 下載地址

image.png

安裝過程中一路點(diǎn)下一步的話就到 C 盤了(也可以自定義目錄),到這里執(zhí)行 nvm 命令肯定不會(huì)失敗,接下來就安裝 node 就行了,比如安裝 16.16.0 這個(gè)版本的 node 就執(zhí)行如下命令,如下版本號(hào)前加不加 v 是一模一樣的

# nvm install v16.16.0
nvm install 16.16.0

注意這里的 install 不能省略成 i,會(huì)報(bào)錯(cuò)

安裝有可能失敗,也有可能成功,也有可能成功一半,成功一半的意思是 node 安裝成功,但是 npm 安裝失敗,終端不會(huì)提示這個(gè)失敗信息,只是在安裝完成后輸入 node -v 有值,npm -v 就報(bào)錯(cuò)

所以建議在使用 nvm install xxxx 之前,先打開 nvm 安裝目錄下的 settings.text 如圖:

image.png

在該文件里添加下面兩行代碼,然后保存。表示使用淘寶境像安裝 node 和 npm,再運(yùn)行 nvm install xxxx 即可,就不會(huì)安裝失敗了

node_mirror:npm.taobao.org/mirrors/node/
npm_mirror:npm.taobao.org/mirrors/npm/

如果不想用淘寶鏡像,也可以放心。這里的淘寶鏡像只是針對(duì) nodenpm 這兩個(gè)東西的安裝,不是項(xiàng)目中的 npm i xxx 也用淘寶鏡的意思,項(xiàng)目中的需要另外配置,項(xiàng)目中使用淘寶鏡像如下:

# npm 用淘寶鏡像
npm config set registry http://registry.npm.taobao.org/
# 或安裝 cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm config  set registry https://registry.npm.taobao.org
cnpm config get registry
cnpm -v

如果你不想用淘寶鏡像,卻出現(xiàn)安裝了 node 卻沒有 npm 的問題,那只能手動(dòng)安裝 npm,如下

先查看 node 不同版本對(duì)應(yīng) npm 版本號(hào):點(diǎn)擊前往

再去下載對(duì)應(yīng)的 npm 版本的 zip 文件:點(diǎn)擊前往

下載好之后:

  • 把解壓出來的文件夾(cli-xxxx)重命名為 npm
  • 放入對(duì)應(yīng) node 版本下的 node_modules 文件夾里面
  • 然后打開該 npm 文件夾里的 bin 文件夾,把里面的 npm 文件npm.cmd 文件 復(fù)制,放到對(duì)應(yīng) node 版本下,和 node_modules 文件夾同級(jí)即可

上面操作完成之后,執(zhí)行 node -vnpm -v 就都有了

接著需要執(zhí)行 nvm on 命令來開啟使用 nvm 來管理 node,如果這個(gè)命令報(bào)錯(cuò),請(qǐng)打開管理員模式的 cmdpowershell,再執(zhí)行 nvm on 即可

nvm 常用命令

比較常用的幾個(gè)命令,注意看下注釋

nvm install <版本號(hào)>   // 安裝指定 node 版本,版本號(hào)如寫 14.5.0 或 v14.5.0 效果一樣
nvm uninstall <版本號(hào)> // 卸載指定 node 版本
nvm install stable    // 安裝最新穩(wěn)定版 node
nvm ls                // 查看已經(jīng)安裝了的所有 node 版本
nvm on                // 開啟使用 nvm 管理 node
nvm use <版本號(hào)>      // 切換到指定 node 版本
nvm alias default <版本號(hào)> // 如果 nvm use xxx 換不了,就用這個(gè)換
nvm off               // 關(guān)閉 nvm 管理 node

修改 npm 全局目錄及環(huán)境變量

Window 下可以使用 npm root -g 命令查看默認(rèn)全局安裝目錄,大概是這樣的

C:\Users\Administrator\AppData\Roaming\npm\node_modules

如果想把全局目錄和緩存文件單獨(dú)放到其他地方方便區(qū)分管理,且不占 C 盤的話,可以自己隨意在其他盤新建目錄,比如有如下目錄結(jié)構(gòu)用來存放

D:
└─node
    ├─node_cache
    └─node_global
        └─node_modules

先執(zhí)行如下兩條命令修改默認(rèn) npm 全局安裝路徑,和安裝過程緩存文件存儲(chǔ)路徑

# 上面的路徑,如下,如果設(shè)置失敗看后面的后續(xù)處理第 1 條
npm config set prefix 'D:/node/node_global'
npm config set cache 'D:/node/node_cache'

# 然后輸入下面這個(gè)命令查看是否修改成功
npm config ls

然后配置環(huán)境變量即可

在用戶或系統(tǒng)變量 path 里添加:D:/node/node_global

在系統(tǒng)變量添加 NODE_PATHD:/node/node_global/node_modules

安裝后續(xù)錯(cuò)誤處理

只是 windows 會(huì)存在如下問題

npm 安裝插件報(bào)錯(cuò)或設(shè)置 npm 全局路徑報(bào)錯(cuò)

npm ERR! Please try running this command again as root/Administrator

解決方案:

刪除 .npmrc 文件,文件位置:C:\Users\{賬戶}\.npmrc,有些電腦沒有 Users 文件夾的,而是中文的【用戶】文件夾,是一樣的

安裝好的東西不能加載

比如 npm i yarn -g 安裝成功后,我再執(zhí)行 yarn -v 報(bào)錯(cuò)如下

yarn : 無法加載文件 xxxx\node_global\yarn.ps1,因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本。有關(guān)詳細(xì)信息,請(qǐng)參閱 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

原因是沒有權(quán)限

解決方案:

  • 先打開 powershell,找不到的話可以通過 vscode 打開 powershell
  • 然后執(zhí)行 get-ExecutionPolicy 命令,是查看權(quán)限的
  • 輸出結(jié)果為 Restricted,說明權(quán)限是禁用的
  • 接著執(zhí)行 set-ExecutionPolicy -Scope CurrentUser 命令
  • 會(huì)提示輸入,然后輸入 remotesigned 回車,設(shè)置成可用的意思
  • 再執(zhí)行 get-ExecutionPolicy 命令,結(jié)果為 RemoteSigned 表示更改成功,然后就可以正常加載了

到這,nvm、node、npm 安裝到正常使用應(yīng)該都沒啥問題了,如有遺漏,歡迎評(píng)論區(qū)留言指出

結(jié)語

如果本文對(duì)你有一點(diǎn)點(diǎn)幫助,點(diǎn)個(gè)贊支持一下吧,你的每一個(gè)【贊】都是我創(chuàng)作的最大動(dòng)力 _

更多前端文章,或者加入前端交流群,歡迎關(guān)注公眾號(hào)【前端快樂多】,大家一起共同交流和進(jìn)步呀

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容