不能不知道的.npmrc文件
前记
“xxx姐,找个库好像在不见了”,“源不一样,你配置一下”。这是在公司实习的时候拉项目下载依赖的时候出现的一个小插曲。学前端的人都知道npm,也知道npm有很多的下载源,我们也会去全局地去配置npm下载源,比如:淘宝镜像。
但是其实我们也可以针对某个项目去配置我们的npm下载配置,也就是 .npmrc文件,只要在项目根目录下配置这个文件,在项目目录下执行 npm 命令时,.npmrc文件将在项目的根目录中被解析和应用。
.npmrc 文件的解析和应用的优先级
- 首先,npm 会解析和应用用户主目录下的 .npmrc 文件,这是全局的配置文件。
- 接下来,npm 会解析和应用项目根目录下的 .npmrc 文件,这是项目特定的配置文件。
- 如果在用户主目录下存在 .npmrc 文件,并且项目根目录下也存在 .npmrc 文件,那么项目根目录下的 .npmrc 文件中的配置选项会覆盖用户主目录下的配置选项。
常见配置项
registry=<registry URL>
指定 npm 的注册表地址。可以是公共的 npm 注册表地址,也可以是私有注册表地址。
registry=https://registry.npmjs.org/
proxy=<proxy URL>和https-proxy=<proxy URL>
设置代理服务器的地址,以便在下载包时通过代理服务器进行网络请求。可以分别设置 HTTP 和 HTTPS 的代理地址。
proxy=http://proxy.example.com/
https-proxy=http://proxy.example.com/
prefix=<directory path>
设置全局安装的包的安装目录。默认情况下,全局安装的包会被安装到 Node.js 安装目录的lib/node_modules文件夹下。你可以使用prefix选项来指定一个自定义的安装目录。
prefix=/path/to/custom/directory
package-lock=<true|false>
设置是否生成和使用package-lock.json文件。package-lock.json文件用于锁定依赖项的版本,以确保在不同环境中安装相同的包版本。默认情况下,npm 会根据package.json文件自动生成和使用package-lock.json。你可以使用package-lock选项来控制是否生成和使用它 。
package-lock=false
save-exact=true
当安装依赖项时,使用精确的版本号进行安装,而不是使用范围符号。
save-exact=true
- 如果在.npmrc文件中看到
@yolo:registry=xxx这样子的配置,它指定了一个名为 @yolo 的作用域的注册表地址。
@yolo:registry=xxx
在 npm 中,作用域是一种将包组织在一起的方式,以便于管理和发布相关的包。作用域允许你在包名称前面加上 @scope,例如 @yolo/package-name。
通过在 .npmrc 文件中设置 @yolo:registry,你可以为特定作用域(@yolo)配置自定义的注册表地址。这意味着当你使用 @yolo 作用域下的包时,npm 会使用指定的注册表地址(xxxx)进行安装和下载。
这种配置对于组织和管理私有包非常有用,因为你可以将私有包发布到自己的注册表地址,并通过配置 .npmrc 文件来指定注册表地址,以便在项目中安装和使用这些私有包。
注意:xxxx 应该替换为实际的注册表地址。
总结
在摸鱼和产出之间选择佛系....