我想那个
~ $ 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
安装软件包?
答案 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
一起使用。