2014-07-13 64 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

我认为这工作,但它只修复了一些软件包。我不知道为什么它没有将它们全部模拟,因为它似乎重新安装了所有的软件包,但许多软件包没有被仿真,并且它似乎已经破坏了我已经工作的吞噬。 ( –