Libon

.npmrc config file

2Mins #shell
pnpm 管理工具常用的 .npmrc 配置项
1
# use-node-version=16.16.0
2
# registry=https://registry.npmjs.org/
3
strict-peer-dependencies=false
4
prefer-frozen-lockfile=true
5
shamefully-hoist=true
6
prefer-offline=true

use-node-version

指定项目的运行时应使用哪个具体的 Node.js 版本,pnpm 会自动安装指定版本的 Node.js 并将其用于运行 pnpm run 命令或 pnpm node 命令。这也可以用来替代 nvm

registry

这个配置项是 npm 那边的,但是 pnpm 依然对其进行了支持,用于修改注册源,可能某些包是 npm 私服中的,如果使用官方的注册源会导致下载不到包,但因为这样是一次性修改所有包的注册源,可能会导致一些其他的问题,所以也可以单独指定某些包的注册源,比如 @babel:registry=https://example.com/packages/npm/ 这种就是将以 @babel 为首的包的注册源修改为:https://example.com/packages/npm/

strict-peer-dependencies

严格的对等依赖,某些包在安装的时候可能需要安装其他的前置依赖,比如我安装了 @vitejs/plugin-vue 但是没有安装 vite,同时启用了 strict-peer-dependencies,那么安装命令就会失败。

prefer-frozen-lockfile

如果设置为 true,那么在安装依赖的时候会优先按照 pnpm-lock.yaml 中已存在的依赖关系来安装,并且不会更新 pnpm-lock.yaml,这样可以避免 lockfile 文件在不同的设备安装依赖的时候被反复更新导致 git 冲突的问题。

shamefully-hoist

将依赖结构平铺, 使得可以使用部分幽灵依赖, 在写 nuxt 的时候尤为有用. 因为在使用 nuxt 项目的时候, 依赖项中不会存在 vue/vue-router 等依赖, 加上这个配置以后, 就可以将 pnpm 当做 npm/yarn 来使用, 在具有想同特性的同时还能获的 pnpm 的下载速度.

prefer-offline

优先使用本地已经安装过的文件, 避免重新从远程下载, 节省安装时间


CD ..