那些年遇到的npm死坑

NPM(Node Package Manager)

shih
5 min readNov 30, 2017

是一套node.js的套件管理工具,只要安裝NodeJS完,npm就會跟著安裝好,身為一個現代化的前端工程師一定會經常使用npm,各種神套件透過npm就能安裝好。

只是說……npm這東西真的是很看運氣的,有些人就是天生命好怎麼樣裝都不會出事,像我就是命格差的那個,三不五時npm就是會噴掉,光是看npm噴的那些錯誤訊息頭就暈了。

本篇都是以OS系統為主

1.npm global 裝不了

這有兩種狀況,不過都能用同一種方式解決

第一種就是

npm install -g handlebar 

打了上面這段卻完全裝不起來,一直噴錯誤,最簡單的方式相信也是最多人用的方式包括我就是加上sudo,可是這也是最不正確的方式。

sudo npm install -g handlebar 

node & npm所執行的那些套件其實並不需要用到root權限,可是我們今天加了sudo給它就是賦予它root權限,那如果我們真的衰小遇到一些惡意的script,那你就準備跟電腦說掰掰了,這篇文章Do not sudo npm有更多對於為什麼不要用sudo的解釋。

第二種狀況就是npm -g install裝得了也裝得好,可是卻跑不動?
我遇到的就是這個哭笑不得的怪坑。
其實上面兩種問題都可以用同一種方式解決,另外開一個global的資料夾,並且把預設的路徑改到這個資料夾上

第一步 mkdir ~/.npm-global //建立資料夾cd npm-global透過下面這段指令更改npm prefixnpm config set prefix '~/.npm-global'  //更改路徑再來我們透過vi編輯器來打開~/.profile,記得一定是要在npm-global資料夾內哦輸入vi ~/.profile會進到編輯畫面並且在最上面加上 //編輯export PATH=~/.npm-global/bin:$PATH
接著儲存在打上
source ~/.profile

打完收工,global問題我就是這樣解決的。

2.nodejs & npm版本問題

最近遇到一個情況就是clone公司專案後卻怎麼樣npm run build都失敗,詭異的是其他電腦做一樣的動作就可以成功,檢查才發現原來自己的電腦用的node版本是最新版本,可是其他電腦都是還在Node v6.10版,所以在進行npm install的時候,很多套件都裝不上去。

nodeJS版本最好的解決方式就是NVM(Node Version Manager),如果有用homebrew可以用它來安裝nvm,或是參考官方文件的安裝方式。

brew install nvm

當你需要什麼版本你都可以透過nvm來安裝,打個比方我現在想裝v6.10版

nvm install v6.10

只要這樣輸入,nvm就會幫你裝好並幫你切換到這一個版本的node,那安裝了這麼多版本的node了,要怎麼切換呢?

nvm use v8   //後面都是接版本號就對了

這樣就會幫你切換你已經安裝過的node & npm版本

--

--