node 與 npm 是什么不用多說了。
nvm 是管理與切換 node 版本的工具。
npx 是npm包執(zhí)行器,作用是在不污染全局和項目環(huán)境的提前下,臨時執(zhí)行相關(guān)命令。
切換 npm 源
# 臨時從指定源下載npm包
npm --registry https://registry.npm.taobao.org install express # 從淘寶源安裝 express
# 全局修改
npm config set registry https://registry.npm.taobao.org
# 查看當(dāng)前源
npm config get registry
# 重置為官方源:
npm config set registry https://registry.npmjs.org/
使用 nvm 管理node版本
你是否有這樣的經(jīng)歷:當(dāng)你入職新公司,接手一個老項目,或者當(dāng)你從github上下載一個高贊的項目時,你滿懷熱情地在終端輸入npm run dev,結(jié)果看到的是令人焦慮的滿屏紅,項目根本跑不起來。在你抓掉第n根頭發(fā)之后終于發(fā)現(xiàn),原因是 node 版本不匹配!這時就需要用到 nvm 啦!它可以讓你不需要反復(fù)卸載重裝 nodejs,只需要簡單地執(zhí)行一條版本切換命令,就可以隨意地在各版本的 node 之間切換。
nvm 下載地址:
shell版本:nvm-sh/nvm
windows版本:coreybutler/nvm-windows
注意:安裝 nvm 之前,要卸載nodejs
nvm 默認(rèn)的nodejs下載源是 http://nodejs.org/dist/,是國外站點,國內(nèi)下載非常慢,而且成功率低,推薦修改為淘寶源,具體方法為:
找到 nvm 的安裝目錄(windows默認(rèn)為:C:\Users[當(dāng)前用戶]\AppData\Roaming\nvm,由于此時手邊沒有l(wèi)inux和macos測試,所以Linux或macos的小伙伴請自行查找路徑),打開安裝目錄下的的 settings.txt
文件,將以下內(nèi)容復(fù)制添加到文件中(注意不要覆蓋文件的原有內(nèi)容):
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
確保安裝nvm之前卸載了nodejs,否則無法成功切換版本。
nvm 常用命令
nvm ls : # 列出所有已安裝的 node 版本,前面有 * 號的為當(dāng)前使用中的版本
nvm ls-remote : # 列出所有遠(yuǎn)程服務(wù)器的版本(官方node version list)
nvm list : # 列出所有已安裝的 node 版本
nvm list available : # 顯示所有可下載的版本
nvm install stable : # 安裝最新版 node
nvm install [node版本號] : # 安裝指定版本 node
nvm uninstall [node版本號] : # 刪除已安裝的指定版本
nvm use [node版本號] : # 切換到指定版本 node
nvm current : # 當(dāng)前正在使用的 node 版本
nvm alias [別名] [node版本號] : # 給不同的版本號添加別名
nvm unalias [別名] : # 刪除已定義的別名
nvm alias default [node版本號] : # 設(shè)置默認(rèn)版本
npx
npx 是 npm v5.2.0 引入的一條命令,是npm 包執(zhí)行器。
主要有以下特點:
臨時安裝可執(zhí)行依賴包,不用全局安裝,不用擔(dān)心長期的污染。
可以執(zhí)行依賴包中的命令,安裝完成自動運行。
自動加載 node_modules 中依賴包,不用指定 $PATH 。
可以指定 node 版本、命令的版本,解決了不同項目需要使用不同版本的問題
npx會先到 node_modules/.bin 路徑檢查對應(yīng)的命令是否存在,找到之后執(zhí)行;
沒有找到,就去環(huán)境變量 $PATH 里面,檢查對應(yīng)命令是否存在,找到之后執(zhí)行;
還是沒有找到,自動下載一個臨時的依賴包最新版本在一個臨時目錄,然后再運行命令,運行完之后刪除,不污染全局環(huán)境。
安裝過程很簡單,直接運行以下命令即可
npm install npx -g
常用方式:
# 開啟靜態(tài)服務(wù)器 (默認(rèn)以終端所在的當(dāng)前目錄為根目錄)
npx http-server -p 3000 # -p 參數(shù)為可選,默認(rèn)端口 8080
# 使用指定的node版本執(zhí)行命令
npx -p node@16.17.0 npm run dev # 使用 16.17.0 版本的node環(huán)境執(zhí)行 npm run dev