Skip to content

统一前端项目的Node版本、包管理器、第三方依赖包

锁定项目 Node 版本

通过在 package.json 中指定 engines 字段,可限定项目使用的 node 版本。下面配置仅允许用户使用 14 或者 16的版本。更多的配置可以参考

https://www.npmjs.cn/files/package.json/

package.json

"engines": {
   "node": "14.x || 16.x",
   "npm": ">=6.14.18"
}

配置之后会发现,该字段只对 yarn 生效;

那如何对 npm 也生效呢?在项目根目录下的 .npmrc 文件中增加如下配置

.npmrc

engine-strict = true

以上配置完成后,执行 npm install,不匹配的 Node.js 版本将直接退出。

锁定包管理器

利用 only-allow 工具包,npm scripts 快速实现锁定。

  • 步骤一:在项目中安装 npm install only-allow -D

  • 步骤二:在 package.json 文件配置 scripts.preinstall,允许输入的值有:

only-allow npm、only-allow pnpm、only-allow yarn

package.json

"scripts": {
    "preinstall": "only-allow npm",
    ...
}

以上配置完成后,可以使用 (yarn、pnpm) 试试,直接报错退出。

指定需要强制解决的依赖版本

当项目的某些依赖包存在版本冲突时,resolutions 可以强制所有依赖包使用特定的版本。

"resolutions": {
   "vue": "2.6.14",
   "vue-server-renderer": "2.6.14",
   "vue-template-compiler": "2.6.14"
}