package.json 中的 npm 版本与 运行 npm -v 时显示的不同?

npm version in package.json is different from what is showing when running npm -v?

我在 package.json 文件中的 npm 版本与当前版本不同。知道如何团结他们吗?或者这是正常行为吗?

"dependencies": {
  "bcryptjs": "^2.4.3",
  "client": "file:client",
  "config": "^3.3.6",
  "crypto-js": "^4.1.1",
  "express": "^4.17.1",
  "firebase": "^9.6.7",
  "npm": "^8.1.4",
  "ts-node": "^10.5.0",
  "typescript": "^4.4.4"
},

运行 npm -v 命令 returns 8.5.0.

它不更新的原因是因为您没有npm全局更新。

因此,npm 依赖项是多余的。


通常,您会使用以下命令全局更新 npm

$ npm install -g npm

但是,由于您只是在本地项目依赖项中指定它,它不会在全局范围内更新npm


如果您想全局更新 npm,您可以使用 package.json 中的脚本执行此操作,如下所示。

{
  "scripts": {
    "global": "npm install -g npm@8.1.4"
  }
}

然后您可以使用以下命令调用它。

$ npm run global

这将在全球更新 npm 版本。


总而言之,这是您当前操作方式的预期行为,但您可以使用脚本全局更新 npm