package.json

package.json 中~和^是什么意思

  • ^意思是将当前库的版本更新到第一个数字,例:"^4.1.0"是库会更新到4.X.X的最新版本,但不会更新到5.X.X版本。

  • ~意思是更新到中间数字的版本,例:"~4.7.4"是库会更新到4.7.X的最新版本,但不会更新到4.8.X版本。

  • 锁定版本:去掉^或~ 写死版本号

老项目维护

  • 维护很久前的项目,下载依赖后可能会出现各种莫名其妙的报错,可以将出现问题的依赖,写死版本号,重新下载依赖
  • 可以在 package.json 中设置 engines 字段,并为 node 或 npm 设置要求版本或两者
 "engines" : { 
    "npm" : ">=8.0.0 <9.0.0",
    "node" : ">=16.0.0 <17.0.0"
  }

要通过 npm 强制执行此操作,您需要创建一个 .npmrc 文件(并将其提交到存储库)并将 engines-strict 选项设置为 true ,如果所需的引擎版本不匹配,这将导致诸如 npm install 之类的 npm 命令失败:

# .npmrc
engine-strict=true

如果没有该文件,每个开发人员都需要在其本地工作区中运行 npm config set engine-strict true 以打开此选项

eg:

{
  "name": "my package",
  "engines": {
    "node": ">=12.19.1" // intentionally so big version number
  },
  "scripts": {
    "requirements-check": "babel-node check-version.js",
    "postinstall": "npm run requirements-check"
  }
}

你可能感兴趣的:(vue.js)