JavaScript的包管理器npm是一种非常流行的方法,用于在一个项目中安装和管理依赖项。在项目目录中,有一个名为.npmrc的文件,它是npm命令的一个配置文件,也是一个重要的配置文件,掌握它的用法就可以让我们在用npm时更加方便。
一、全局和项目级别的配置
在npm中,存在两种级别的配置文件,一种是全局级别的,即检索顶级的文件夹,包括用户目录:~/.npmrc,可用于定义全局的npm配置,例如设置代理等信息。另一种是项目级别的,即在每个包含package.json文件的项目中,都可以定义自己的.npmrc文件。项目级别的.npmrc文件会覆盖全局的配置文件,可以用于自定义此项目的npm配置,这是一个非常有用的功能。
在一个项目中创建.npmrc文件的方法是非常简单的,只需要使用touch命令创建一个空文件然后设置相应的配置信息即可:
.npmrc
#定义npm代理服务器地址
registry=https://registry.npmjs.org/
#定义代理服务器地址
proxy=http://IP:Port
#定义https请求时的代理服务器地址
https-proxy=http://IP:Port
#定义registry的Windows认证信息
_auth=$AUTH
always-auth=true
配置文件中的每一行表示一条配置,#表示注释,这里我们简单介绍一下上面每一个配置项的作用。
二、registry配置
在npm中,包的元数据和包本身是存储在网络registry上的,当我们执行npm install命令时,会先在registry中查找是否存在指定的包,如果存在就会从registry中下载安装,否则会报出错误。
.npmrc中registry指令用于指定从哪个registry服务器安装依赖包。默认情况下,这个值将从npm的全局配置文件中获取。如果我们喜欢使用淘宝的镜像来加速下载,那么我们可以在.npmrc文件中设置如下内容:
registry=https://registry.npm.taobao.org/
这样,就会从淘宝的镜像源来安装npm依赖包。
三、proxy和https-proxy配置
如果我们目前的环境处于局域网中,那么我们下载依赖包很有可能会受到网络防火墙的限制,而使用代理服务器则可以有效地解决这个问题,这时我们需要在.npmrc中设置代理服务器地址,有两个不同的配置项可用于配置http和https的访问协议:
proxy=http://IP:Port
https-proxy=http://IP:Port
我们只需要将IP和Port替换成对应配置即可。如果存在多个代理服务器,可以配置为:
proxy=http://proxy1:8080/
https-proxy=http://proxy2:8080/
四、认证token的配置
在.npmrc中,_auth配置用于存储npm注册表的登录信息,也就是说,如果我们需要安装一个依赖包,那么我们需要在安装之前通过验证登陆。
我们可以在登录npm时加上–tmpl=auth-and-token来获得encodeURIComponent字符串,来进行安装npm包时的认证操作:
npm login --registry=http://registry.npmjs.org/ --scope=@scope --always-auth --tmpl=auth-and-token
可以把_template传递给Node.js来encode _auth:
//包载入
const Npmrc = require('@npmcli/config')
const npmrc = new Npmrc()
//输入Your username, Your password和Your email
sudo npmrc -c https://registry.npmjs.org/ --parseable --userconfig=/path/to/.npmrc --always-auth --scope=your_scope
let data = npmrc.toCLI()
//获取最后一个_auth
console.log(data._auth)
这里需要注意的是,_auth信息是不可以任意泄露的敏感信息,不要把.npmrc和.log文件发布到公共仓库或者开源的地方。
五、关于npm的cache缓存和tmp临时数据的存储位置
npm安装package时会缓存已经下载的package,以便可以在之后重新安装或类似的操作,减少网络带宽的使用。npm cache命令用于管理npm的缓存,如npm cache ls列出cache中安装包的信息,npm cache clean清除缓存。但.cache和.tmp是在用户的本地机器上,可对应目录进行手动删除。
.npmrc中cache和tmp配置项用于定义缓存和临时文件所在的位置,默认情况下都是在用户主目录下的.npm-cache和.tmp文件夹下,可以通过以下方式进行配置:
cache = /path/to/cache
tmp = /path/to/tmp
六、其他配置项
除了上述介绍的几个常用的配置项,.npmrc还有很多其他的配置项,有兴趣的可以去npm的官方文档中查看。不过,我们在使用这些配置项的时候,一定要遵守npm官方的写法规范,这样可以更好地完成npm的工作。
七、总结
npm作为一种非常流行的包管理工具,在我们的开发工作中起到了非常重要的作用,.npmrc作为npm命令的一个配置文件,掌握它的使用方法可以让我们更好地进行npm包的管理安装。
原创文章,作者:CGPND,如若转载,请注明出处:https://www.506064.com/n/332402.html