【发布时间】:2014-09-22 15:12:12
【问题描述】:
当我开始遇到麻烦时,我正试图通过npm 升级phonegap。长话短说,我的电脑上有两个node_modules 目录。
/usr/local/lib/node_modules
/usr/local/share/npm/lib/node_modules
当我运行npm upgrade -g phonegap 时,npm 似乎更新了驻留在/usr/local/lib/node_modules 中的包的副本。但是,如果我 which phonegap 我发现符号链接指向 /usr/local/share/npm/lib/node_modules 的旧安装。
另外,当我尝试安装诸如express 之类的独立包时,文件安装在/usr/local/lib/node_modules 目录中,但在我的$PATH 中的任何位置都没有创建指向可执行文件的符号链接。
两个问题:
- Mac OS X 上节点模块的正确目录是什么?
如何配置npm以在我的$PATH安装软件时链接可执行文件?
加分项:node的安装方法会影响配置吗?有一个lot of options。
编辑:我发现在我的/usr/local/bin 中创建了符号链接,但我的.bash_profile 在我的$PATH 中设置为/usr/local/share/npm/bin 在/usr/local/bin 之前。我隐约记得在某个时候将该路径添加到我的个人资料中,但我不确定为什么。
所以现在的问题变成了:我是如何在我的计算机上得到两个不同的node_modules 目录的?为什么我要将我的node_modules 放在share/npm/lib 子目录中而不是在/usr/local/lib 中?
【问题讨论】:
-
使用
npm root -g查找全局包根路径