NODE_PATH没效果

时间:2013-05-22 06:30:00

标签: node.js

我想那个

~ $ npm install express"

不会在我的主文件夹中安装express,而是安装在~/apps/node_modules

所以我在export NODE_PATH=/home/a/apps/node_modules中插入.bashrc,而不是source .bashrc

不幸的是,npm install express仍在/home/a/node_modules安装,npm install -g express需要root / Administrator。

npm如何在/home/a/apps/node_modules安装软件包?

1 个答案:

答案 0 :(得分:9)

NODE_PATH用于查找模块,但不用于安装模块。

您可以使用--prefix表示npm应安装软件包的位置:

npm --prefix ~/apps install express

您可以通过将npm配置为始终使用该前缀来使其更加永久,但这只会覆盖全局位置。所以你需要使用-g标志:

# config once
npm config set prefix ~/apps

# after that, '-g' will install packages in ~/apps
npm install express -g

此外,使用-g将在~/apps/lib/node_modules中安装软件包(我认为无法更改),因此请将该目录添加到$NODE_PATH

另一种解决方案是为npm创建一个shell别名:

# in your ~/.bashrc
alias npm="command npm --prefix ~/apps"

虽然我不完全确定它如何与-g一起使用。