npm的配置项比我们想象的要多。
描述
npm的配置信息可以通过以下几种方式设置:
命令行
在命令行输入 --foo bar 可以配置foo为“bar”.--参数阻止命令行解析器读取标记。 在命令结束处的--flag(参数)会默认被设置为true.
环境变量
以'npmconfig'开头的环境变量会被作为配置参数解析。例如,输入'npm_config_foo=bar'可以将foo设置为“bar”,任何没有赋值的环境配置项都会被设置为true。配置参数大小写不敏感,所以执行NPM_CONFIG_FOO=bar是一样的。
npmrc 文件
有四个相关的文件: per-project config file (/path/to/my/project/.npmrc) per-user config file (~/.npmrc) global config file ($PREFIX/etc/npmrc) npm builtin config file (/path/to/npm/npmrc)
默认配置
运行 npm config ls -l 可以看到npm内部配置参数的默认值。
简写和其他命令行
--v: --version -h, -?, --help, -H: --usage -s, --silent: --loglevel silent -q, --quiet: --loglevel warn -d: --loglevel info -dd, --verbose: --loglevel verbose -ddd: --loglevel silly -g: --global -C: --prefix -l: --long -m: --message -p, --porcelain: --parseable -reg: --registry -f: --force -desc: --description -S: --save -D: --save-dev -O: --save-optional -B: --save-bundle -E: --save-exact -y: --yes -n: --yes false ll and la commands: ls --long 如果一个特定配置参数和某个已有的配置参数一致,它可以扩展到那个配置参数。
npm ls --par
# same as:
npm ls --parseable
如果多个单字母的简写串联在一块,并且结合的结果不是其他的配置参数,它扩展成为多个配置项。
npm ls -gpld
# same as:
npm ls --global --parseable --long --loglevel info
包配置项
在运行scripts时,如果有配置参数<name>[@
{ "name" : "foo"
, "config" : { "port" : "8080" }
, "scripts" : { "start" : "node server.js" } }
server.js:
http.createServer(...).listen(process.env.npm_package_config_port)
用户可以通过以下方式改变端口:
npm config set foo:port 80
配置设置
access
默认值:restricted 类型:Access 当发布scoped packages时,默认的访问等级是restricted。通过设置 --access=public,可以将scoped package设置为公开。access的值只允许设置为public、restricted。
always-auth
默认值:false 类型:Boolean 当访问代码仓库时,npm需要认证头,即使是GET请求。
also
默认值:null 类型:String
bin-links
默认值:true 类型:Boolean 让npm为包的可执行语句创建符号连接。 设置为false时不创建符号链接。可以解决 linux 下的 npm 在 ntfs 分区上运行 npm install 遇到的创建软连接失败问题
browser
默认值:OS X: "open", Windows: "start", Others: "xdg-open" 类型:String brower通过 npm docs命令调用来打开站点。
ca
默认值:npm ca 证书 类型:String, Array or null