解決 Mac 輸入指令出現 command not found: npm 問題

前言

沒想到換了作業系統竟然也會遇到 command not found 的問題,所以這一篇紀錄一下如何解決。

nvm is not compatible with the npm config “prefix” option

我必須說我完全不知道這件事情是如何發生的,只是蓋上電腦螢幕,隔天打開螢幕就發現不管輸入任何指令都只會噴出以下訊息

1
2
3
4
zsh: command not found: hexo
zsh: command not found: node
zsh: command not found: npm
zsh: command not found: vue cli

(但是 nvm 卻是正常的(WT…))

而當下我是使用 VSCode 去輸入指令,所以我懷疑是不是 VSCode 終端機的指令路徑變數跑掉了?正當我開始懷疑的時候我就改用 iTerm 才噴出一段訊息

1
2
nvm is not compatible with the npm config "prefix" option: currently set to "/Users/ray/.npm-global"
Run `nvm use --delete-prefix v14.15.1 --silent` to unset it.

原來是 nvm 出現錯誤,所以我懷疑應該是我 Mac 蓋上螢幕期間被偷偷更新了吧(?)

所以試著在終端機輸入 nvm use --delete-prefix v14.15.1 --silent 確實指令就正常了。

這之間也上網查了下可能造成的原因,但是似乎沒有一個比較明確發生的原因,但是卻看到一個滿妙的狀況,有些人輸入 nvm use --delete-prefix vxx.xx.xx --silent 之後再重開終端機還是會再次發生問題,但我自己本身實測是沒有,所以這邊也紀錄一下如何解決。

修正問題

第一步驟攸關重要,必須先修復 npm 指令讓他可以正常預作

1
nvm use --delete-prefix vxx.xx.xx --silent

xx 代表的是你的 Node.js 版本,因此我目前假設使用 v14.15.1 就是輸入以下

1
nvm use --delete-prefix v14.15.1 --silent

接下來要透過 npm 清除 nvm 前綴版本號

1
npm config delete prefix

最後一個步驟就是重新設置 npm 的前綴,

1
npm config set prefix $NVM_DIR/versions/node/vxx.xx.x

一樣 vxx.xx.x 請依據你使用的 Node 版本調整,因此我的就是如下

1
npm config set prefix $NVM_DIR/versions/node/v14.15.1

目前嘗試下來問題也都有解決,重開終端機也都沒有在出現 nvm is not compatible with the npm config "prefix" option 問題

參考文獻

Liker 讚賞 (拍手)

如果這一篇筆記文章對你有幫助,希望可以求點支持或 牡蠣 鼓勵 (ノД`)・゜・。

Liker 是一個按讚(拍手)的讚賞機制,每一篇文章最多可以按五下(拍手),按讚過程你是完全不用付費的(除非你想要每個月贊助我 :D),你只需要登入帳號就可以開始按讚。
而 Liker 會依據按讚數量分配獎金給創作者,所以如果你願意按個讚我會非常感謝你唷。

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ