是否npm install可以通过命令标志或环境变量为 指定自定义包目的地?
npm install
默认情况下,npm 本地安装最终在node_modules当前目录中,但我希望它安装node_modules在不同的目录中,例如vendor/node_modules. 我怎样才能做到这一点?
node_modules
vendor/node_modules
您可以通过使用--prefix标志和--global* 标志来做到这一点。
--prefix
--global
pje@friendbear:~/foo $ npm install bower -g --prefix ./vendor/node_modules bower@0.7.0 /Users/pje/foo/vendor/node_modules/bower
*即使这是“全局”安装,安装的 bin 也无法通过命令行访问,除非~/foo/vendor/node_modules存在于PATH.
~/foo/vendor/node_modules
PATH
的每个可配置属性npm都可以在六个不同位置中的任何一个中设置。按优先顺序:
npm
--prefix ./vendor/node_modules
NPM_CONFIG_PREFIX=./vendor/node_modules
$HOME/.npmrc
userconfig
$PREFIX/etc/npmrc
path/to/npm/itself/npmrc
默认情况下,本地安装的包进入./node_modules. 全局变量进入prefix配置变量(/usr/local默认情况下)。
./node_modules
prefix
/usr/local
您可以运行npm config list以查看当前配置并npm config edit进行更改。
npm config list
npm config edit
一般来说,npm的文档真的很有帮助。文件夹部分是 npm 的一个很好的结构概述,配置部分回答了这个问题。