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

时间:2014-07-30 20:06:18

标签: node.js macos npm

当我遇到麻烦时,我试图通过phonegap升级npm。简而言之,我的计算机上有两个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/usr/local/share/npm/bin之前设置了/usr/local/bin在我的$PATH。我依旧记得在某些时候将这条路径添加到我的个人资料中,但我不确定原因。

现在问题变成了:我如何在我的计算机上找到两个不同的node_modules目录?为什么我要将node_modules放在share/npm/lib子目录中而不是右边在/usr/local/lib

6 个答案:

答案 0 :(得分:83)

/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,前者是我使用npm安装的Node模块。

答案 1 :(得分:41)

第二个Thomas David Kehoe,有以下警告 -

如果您使用的是节点版本管理器(nvm),则您的全局节点模块将存储在您保存模块时使用的任何节点版本下。

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

答案 2 :(得分:5)

npm root -g

检查npm_modules的全局位置

答案 3 :(得分:1)

查找当前活动的 npm 安装的当前路径:

npm root -g

或尝试以下流行的默认设置之一:

Linux:

/usr/local/lib/node_modules

MacOS(通过 brew 安装):

/opt/homebrew/lib/node_modules

与 nvm 一起安装的 Linux(也可能是 macos):

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

Windows(奖励 ?)

C:\Program Files\nodejs\node_modules\

答案 4 :(得分:0)

如果您想知道NPM软件包的位置,则应该:

which npm // locate a program file in the user's path SEE man which
// OUTPUT SAMPLE
/usr/local/bin/npm
la /usr/local/bin/npm // la: aliased to ls -lAh SEE which la THEN man ls
lrwxr-xr-x  1 t04435  admin    46B 18 Sep 10:37 /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js

因此,鉴于npm本身是一个NODE软件包,它与其他软件包( EUREKA )安装在同一位置。因此,请确认您应该CD进入node_modules并列出目录。

cd /usr/local/lib/node_modules/
ls
#SAMPLE OUTPUT
@angular npm .... all global npm packages installed

OR

npm -root -g

根据@anthonygore的评论

答案 5 :(得分:-3)

enter image description here

按CMD + Shift G并粘贴此URL。

文件夹usr是隐藏的,因此在通常搜索时看不到。