我的npm模块应该在Mac OS X上安装在哪里?

当我开始遇到麻烦时,我试图通过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中的软件包的副本。 但是,如果我find了符号链接指向/usr/local/share/npm/lib/node_modules的较旧安装的电话/usr/local/share/npm/lib/node_modules

另外,当我尝试安装独立软件包(如express ,这些文件将安装在/usr/local/lib/node_modules目录中, 但在$PATH中的任何位置都不会创build可执行文件的符号链接。

两个问题:

  • 哪个是Mac OS X上节点模块的正确目录?
  • 如何在安装软件时将npmconfiguration为在$PATH链接可执行文件?

加分:安装node的方法是否影响configuration? 有很多select 。


编辑 :我想通过在/usr/local/bin创build符号链接,但是我的.bash_profile是在$PATH/usr/local/bin之前用/usr/local/share/npm/bin 。 我依稀记得在某个时候添加到我的个人资料的path,但我不知道为什么。

所以现在的问题就变成了:我的计算机上如何得到两个不同的node_modules目录,为什么我要在/usr/local/lib目录中的share/npm/lib子目录中保存我的node_modules而不是正确的?

/usr/local/lib/node_modules是全局安装节点模块的正确目录。

/usr/local/share/npm/lib/node_modules对我没有任何意义。 这里有一个问题是你感到困惑,因为有两个名为node_modules的目录:

/usr/local/lib/node_modules
/usr/local/lib/node_modules/npm/node_modules

后者似乎是Node附带的节点模块,例如lodash,前者是我安装的Node模块。

第二个托马斯·大卫·基欧 ,以下警告 –

如果您正在使用节点版本pipe理器(nvm),那么您的全局节点模块将被存储在您保存模块时使用的任何版本的节点下。

所以~/.nvm/versions/node/{version}/lib/node_modules/