Node.js 的官網有提供安裝程式給 Windows 使用,不過若你沒有管理員權限的話(像是公司電腦),除了安裝 nvm 外,在 Node.js 官網上有提到 nvs 這跨平台、且不用系統管理員權限的 Node.js 版本管理套件。這邊筆記下 nvs 的使用方法,並與 Git Bash 和 CMD 整合使用。
已知限制
- 在 Powershell 中,由於 .ps1 需要透過管理員權限才能啟用的緣故 ( get-executionpolicy 預設值為: Restricted ),所以無法使用
- 「切換版本、切換預設版本」的步驟 nvs link <version>; nvs use <version> ,一定要在 cmd 環境下來執行
步驟
1. 點選 nvs/releases 的頁面,下載 nvs-<版本號>.msi 來進行安裝
2. 安裝完成後,在 cmd 中輸入 nvs來選擇版本安裝
4. 使用 nvs 時的 npm prefix 是目前 Node.js 版本的安裝路徑。換言之,在此情況下全域安裝的 npm module 會因為切換不同的 node.js 版本而失效。所以進行設定如下:
1 2 3 4 5 |
## 用 git bash 設置 mkdir -p ~/.npm-global npm config set prefix ~/.npm-global echo "export PATH=~/.npm-global/bin:$PATH" >> ~/.bashrc source ~/.bashrc |
5. 承上,當你做完此步驟時,Git Bash 和 cmd 的 PATH 會個別缺少以下路徑
1 2 3 4 |
# Git Bash 缺少的: # :/c/Users/<使用者名稱>/AppData/Local/nvs/default:/c/Users/<使用者名稱>/AppData/Local/nvs # CMD 缺少的: # C:\Users\<使用者名稱>.npm-global |
6. 手動在 git bash 和 cmd 中加入路徑
1 2 3 4 |
# ./bashrc # 將 <貼上> 換成 :/c/Users/<使用者名稱>/AppData/Local/nvs/default:/c/Users/<使用者名稱>/AppData/Local/nvs # export PATH=<原先預設的路徑,這段不用改><貼上> # 儲存後,執行 source ~/.bashrc # cmd # setx PATH "%PATH%;%USERPROFILE%\.npm-global" # 若 cmd 的方法不行,可用 Powershell # 用 (Get-ChildItem Env:Path).Value 取得原有的值 # [Environment]::SetEnvironmentVariable("PATH", "<(Get-ChildItem Env:Path).Value所取得的值>;C:\Users\<使用者名稱>\.npm-global", "User") |
7. 重新開啟 cmd 和 git bash,甚至切換版本後的全域安裝套件,都可以正常使用。你可以用 which ( git bash ) 或是 where ( cmd ) 來確認
參考資料
- nvs – Github
- PowerShell – 解決 “.ps1 檔案無法載入,因為這個系統上已停用指令碼執行。” 問題
- How to uninstall global package with npm?
- How to edit, clear, and delete environment variables in Windows
- [node]nvs使用的注意事项
- 科普文:使用 nvs 管理本地 Node.js 版本