在网上查了一下:
npm获取配置有6种方式,优先级由高到底。
-
命令行参数。
--proxy http://server:port
即将proxy的值设为http://server:port
。 -
环境变量。 以
npm_config_
为前缀的环境变量将会被认为是npm的配置属性。如设置proxy可以加入这样的环境变量npm_config_proxy=http://server:port
。 -
用户配置文件。可以通过
npm config get userconfig
查看文件路径。如果是mac系统的话默认路径就是$HOME/.npmrc
。 -
全局配置文件。可以通过
npm config get globalconfig
查看文件路径。mac系统的默认路径是/usr/local/etc/npmrc
。 -
内置配置文件。安装npm的目录下的npmrc文件。
-
默认配置。 npm本身有默认配置参数,如果以上5条都没设置,则npm会使用默认配置参数。
在设置配置属性时属性值默认是被存储于用户配置文件中,如果加上--global
,则被存储在全局配置文件中。
如果要查看npm的所有配置属性(包括默认配置),可以使用npm config ls -l
。
如果要查看npm的各种配置的含义,可以使用npm help config
。
为npm设置代理
$ npm config set proxy http://server:port$ npm config set https-proxy http://server:port
如果代理需要认证的话可以这样来设置。
$ npm config set proxy http://username:password@server:port$ npm config set https-proxy http://username:pawword@server:port
如果代理不支持https的话需要修改npm存放package的网站地址。
$ npm config set registry "http://registry.npmjs.org/"
按上面的方法设置了proxy和https-proxy后,用npm config get proxy 或 npm get proxy 查看,代理服务器已经设置上了, 可是执行npm install xxx时还是报错,提示网络有问题,可能是通过代理上网,需要正确设置proxy,
最后,直接在npm install 命令后面加上 --proxy=http://服务器域名(或IP):端口号,终于正确安装上了,但是上面的方法为什么不行就不知道了,难道设置之后还要重启终端?