2014-07-13 63 views
2

最近升級到OSX小牛,並且我所有的npm全局模塊符號鏈接消失了!重新安裝npm讓npm再次工作。修復npm全局包符號鏈接

有沒有辦法讓npm遞歸地遍歷/ usr/local/lib/node_modules/ 並在每個包的/ usr/local/bin中創建符號鏈接? (是的,它是在我的路徑)

有沒有辦法一次做到這一個單一的包?

我的Google-fu目前正在讓我失望。我有超過40個軟件包,我不願意重新安裝所有的軟件包,或者手動爲所有的軟件箱創建符號鏈接!

OSX 10.9
NPM 1.4.14
節點0.10.29

回答

4

運行此到位重建而無需重新安裝:

for i in "$(npm prefix -g)/lib/node_modules/"*; do 
    sudo npm build -g "$i" 
done 

但是,你肯定的符號鏈接被打破,而不是它只是改變了你的PATH環境變量還是什麼? npm bin -g輸出什麼?

+0

)我會給出一個自旋:'npm bin -g // - >/usr/local/bin' –

+0

/usr/local/bin是路徑中的第一個文件夾,我檢查了這個文件夾,沒有找到我的節點simulinks在那裏,Brew simulinks也不見了,但是釀造鏈接把那些人帶回來了,只有兩個人再次聯繫起來 –

+0

甜!這是有效的!我必須在我的'拯救我生命的東西'筆記本中寫下來。 –

0

那麼這種方式很容易,但它會重新下載的東西,但不是自己的腳本的方式來修復它仍然可能會更快他們在的地方沒有重新下載:

npm install -g $(ls /usr/local/lib/node_modules) 

如果您嘗試手動創建符號鏈接,你幾乎肯定會錯過一些和/或使這樣的錯誤,所以我不會建議。

+0

我認爲這工作,但它只修復了一些軟件包。我不知道爲什麼它沒有將它們全部模擬,因爲它似乎重新安裝了所有的軟件包,但許多軟件包沒有被仿真,並且它似乎已經破壞了我已經工作的吞噬。 ( –