npm将每个包安装两次

npm将每个包安装两次,npm,homebrew,Npm,Homebrew,我刚刚安装了Homebrew,然后安装了Node(通过$brew安装Node)。安装节点时,npm也会自动安装(为什么?) 无论如何,现在当我从npm安装任何软件包时,例如$npm install-g express,它安装在两个位置: Users/myuser/.npm/express和usr/local/lib/node\u modules/express $which express检索我usr/local/bin/express,它指的是usr/local/lib/node\u模块/ex

我刚刚安装了Homebrew,然后安装了Node(通过
$brew安装Node
)。安装节点时,
npm
也会自动安装(为什么?)

无论如何,现在当我从
npm
安装任何软件包时,例如
$npm install-g express
,它安装在两个位置:

Users/myuser/.npm/express
usr/local/lib/node\u modules/express

$which express
检索我
usr/local/bin/express
,它指的是
usr/local/lib/node\u模块/express
。我认为它可以安装在
usr/local/lib/node\u modules/。
中,因为我使用了
-g
标志;但是为什么它也安装在我自己的用户(
Users/myuser/.npm
)下呢


此外,终端如何知道
express
命令?我没有定义任何
.bash\u配置文件
文件。它如何知道转到
usr/local/bin/$PATH

节点安装NPM也是因为没有NPM的节点不会是节点:)
NPM是一个成功的注册中心。没有它,你不会走得更远

~/.npm
是所有软件包的缓存-因此这实际上不是安装。您可能知道缓存,这只是为了避免随着时间的推移重新下载内容。
此外,这可以通过配置

最后,最后一个位置-
usr/local/lib/node_modules
是Express的实际全局安装