前言
nvm use exit status 1: Access is denied
首先 「
nvm use exit status 1: Access is denied
」這個錯誤碼主要是源自於使用者的權限不足,因此不論你使用底下哪一個指令都有可能會發生
1 |
nvm -v |
解決方式其實算是滿簡單的,只需要針對終端機、PowerShell or 命令提示字元點右鍵使用「以系統管理者身份執行」就可以正常使用了
永遠以系統管理者身份執行
但是這種狀況來講每次都要使用「以系統管理者身份執行」來開啟終端機是真的滿麻煩的,所以你其實可以針對應用程式永遠「以系統管理者身份執行」,首先點你要永遠執行的程式右鍵選內容
點選下方進階
將「以系統管理員身份執行」打勾
最後你只需要按下確定並套用即可,這樣子每次開啟就會以以系統管理員身份開啟了,以下也附上差異圖
exit status 145: The directory is not empty
所以改從別的方向查驗,這邊先試著使用管理者身份檢查 nvm 中的 setting.txt 正確性,只需要看
NVM_HOME
和
NVM_SYMLINK
( setting.txt 位於
C:\Users\[username]\AppData\Roaming\nvm 底下
) 路徑是否正確,以我的電腦來講就是下方路徑
1 |
root: C:\Users\Hsiangfeng\AppData\Roaming\nvm |
後來我在 exit status 145: The directory is not empty , when I run command : nvm use 16.10.0 有人提到
For me the issue was “C:\Program Files (x86)\nodejs” folder was indeed non-empty after uninstalling nodejs.
Deleting that folder than “nvm use ..” worked.
其實這個問題是 Windows 本身的坑,因為在刪除檔案或者移除系統時 Windows 並不會真的移除特定資料夾,也因為這個因素會導致出現
exit status 145
錯誤,因此到
C:\Program Files\
底下將 nodejs 這個資料夾刪除就可以解決了。
而正常來講 nvm 也會在
C:\Program Files
底下生成一個 node.js 捷徑,請注意是捷徑!如果圖示是這樣的話,那麼就正常
你也可以發現捷徑的目錄是指向到 nvm 底下的
如果你發現圖案是這樣,那麼就必須刪除,因為這不是正確的資料夾
而這個錯誤資料夾也會導致
nvm use
顯示切換成功了,但本質上當你輸入
node -v
卻會出現
node : 無法辨識 ‘node’ 詞彙是否為 Cmdlet、函數、指令檔或可執行程式的名稱。請檢查名稱拼字是否正確,如果包含路徑的話,請
確認路徑是否正確,然後再試一次。
因此這也是可以排除的錯誤點之一,這個資料夾也不能透過自己生成捷徑來解決,因為這會有參數設置問題,因此建議「以系統管理者身份執行」來使用
nvm use xxxx
切換版本,當切換 Node 版本時,nvm 就會自己在
C:\Program Files
底下生成一個 node.js 捷徑了。