不能不知道的.npmrc文件

362 阅读3分钟

不能不知道的.npmrc文件

前记

“xxx姐,找个库好像在不见了”,“源不一样,你配置一下”。这是在公司实习的时候拉项目下载依赖的时候出现的一个小插曲。学前端的人都知道npm,也知道npm有很多的下载源,我们也会去全局地去配置npm下载源,比如:淘宝镜像。

但是其实我们也可以针对某个项目去配置我们的npm下载配置,也就是 .npmrc文件,只要在项目根目录下配置这个文件,在项目目录下执行 npm 命令时,.npmrc文件将在项目的根目录中被解析和应用。

.npmrc 文件的解析和应用的优先级

  • 首先,npm 会解析和应用用户主目录下的 .npmrc 文件,这是全局的配置文件。
  • 接下来,npm 会解析和应用项目根目录下的 .npmrc 文件,这是项目特定的配置文件。
  • 如果在用户主目录下存在 .npmrc 文件,并且项目根目录下也存在 .npmrc 文件,那么项目根目录下的 .npmrc 文件中的配置选项会覆盖用户主目录下的配置选项。

常见配置项

  1. registry=<registry URL>
    指定 npm 的注册表地址。可以是公共的 npm 注册表地址,也可以是私有注册表地址。
registry=https://registry.npmjs.org/
  1. proxy=<proxy URL> 和 https-proxy=<proxy URL>
    设置代理服务器的地址,以便在下载包时通过代理服务器进行网络请求。可以分别设置 HTTP 和 HTTPS 的代理地址。
proxy=http://proxy.example.com/
https-proxy=http://proxy.example.com/
  1. prefix=<directory path>
    设置全局安装的包的安装目录。默认情况下,全局安装的包会被安装到 Node.js 安装目录的 lib/node_modules 文件夹下。你可以使用 prefix 选项来指定一个自定义的安装目录。
prefix=/path/to/custom/directory
  1. package-lock=<true|false>
    设置是否生成和使用 package-lock.json 文件。package-lock.json 文件用于锁定依赖项的版本,以确保在不同环境中安装相同的包版本。默认情况下,npm 会根据 package.json 文件自动生成和使用 package-lock.json。你可以使用 package-lock 选项来控制是否生成和使用它 。
package-lock=false
  1. save-exact=true
    当安装依赖项时,使用精确的版本号进行安装,而不是使用范围符号。
save-exact=true
  1. 如果在.npmrc文件中看到 @yolo:registry=xxx这样子的配置,它指定了一个名为 @yolo 的作用域的注册表地址。
@yolo:registry=xxx

在 npm 中,作用域是一种将包组织在一起的方式,以便于管理和发布相关的包。作用域允许你在包名称前面加上 @scope,例如 @yolo/package-name

通过在 .npmrc 文件中设置 @yolo:registry,你可以为特定作用域(@yolo)配置自定义的注册表地址。这意味着当你使用 @yolo 作用域下的包时,npm 会使用指定的注册表地址(xxxx)进行安装和下载。

这种配置对于组织和管理私有包非常有用,因为你可以将私有包发布到自己的注册表地址,并通过配置 .npmrc 文件来指定注册表地址,以便在项目中安装和使用这些私有包。

注意:xxxx 应该替换为实际的注册表地址。

总结

在摸鱼和产出之间选择佛系....