前幾天在 Twitter 上抱怨 nvm 很慢,導致 Zsh 開起來很頓 (然後也同步到 Facebook 上):
nvm 很慢的問題還是沒解啊...
— Gea-Suan Lin (@gslin) October 14, 2017
原因在於 .bashrc
或是 .zshrc
內初始化 nvm 時會呼叫 npm config get prefix
,而這個命令很慢:「`npm config get prefix` takes incredibly long (7 - 70 seconds) #14458」。
後來在 Facebook 的留言處有朋友提了幾個方案... 其中一個是 n,花了些時間看軟體架構,有夠簡單... XD 對於不是拿 Node.js 開發的人應該是夠用了 (我只拿來跑一些用 Node.js 寫的工具)。
整個軟體就一個 shell script,把他丟進 ~/bin/
裡面 (我有把 ~/bin/
放到 PATH
裡),就可以用了。透過 N_PREFIX
設定他的基地 (預設是 /usr/local
,我是設成 $HOME
),剩下就跑 n lts
,他就把 node
與 npm
兩個檔案裝好給你用。
路徑的部份要自己設定,將 $N_PREFIX/node_modules/.bin
放進 PATH
,這樣安裝起來的模組如果有可執行工具可以用才能直接跑 (像是 gulp.js 的命令)。
另外,之所以會說不適合開發者用的部份,是因為 module 是跨版本共用的 (切換 node 版本時就是用另外一個版本配上去 XD),所以比較不適合開發者使用...
One thought on “nvm 換 n”