覆盖 package.json 中的用法

问题描述 投票:0回答:2

我有一个需要更新的包依赖项,所以我一直在尝试在 package.json 中使用 overrides,但这似乎不起作用

在我的 package-lock.json 文件中,我可以看到以下内容;

"node_modules/@babel/core": {
  "version": "7.23.3",
  "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz",
  "integrity": "***",
  "dependencies": {
    "@ampproject/remapping": "^2.2.0",
    "@babel/code-frame": "^7.22.13",
    "@babel/generator": "^7.23.3",
    "@babel/helper-compilation-targets": "^7.22.15",
    "@babel/helper-module-transforms": "^7.23.3",
    "@babel/helpers": "^7.23.2",
    "@babel/parser": "^7.23.3",
    "@babel/template": "^7.22.15",
    "@babel/traverse": "^7.23.3",
    "@babel/types": "^7.23.3",
    "convert-source-map": "^2.0.0",
    "debug": "^4.1.0",
    "gensync": "^1.0.0-beta.2",
    "json5": "^2.2.3",
    "semver": "^6.3.1"
  },
  "engines": {
    "node": ">=6.9.0"
  },
  "funding": {
    "type": "opencollective",
    "url": "https://opencollective.com/babel"
  }
},

我要更新的依赖是这个

"semver": "^6.3.1"

所以我将以下内容添加到我的 package.json 中

"overrides": {
  "semver": "7.5.2"
},

我已将其放在 package.json 文件中列出的依赖项和 devDependency 之上 - 我不确定它在 package.json 中的放置是否重要,我一直无法找到任何相关文档。

我也尝试将覆盖代码放在 package.json 的底部,但仍然遇到相同的问题

我已经在 Node 16、17、18、19 和 21 的多个版本上尝试过此操作

我目前正在使用节点 21.2.0 进行测试,该节点使用 npm v10.2.3,该版本高于引入了覆盖的所需 v.8.3.0

我尝试在运行 npm install 之前删除 package-lock.json 文件和 node-modules 文件夹...但每次重新运行 npm install 时,我仍然会得到 package-lock.json 文件中使用的相同依赖项

所以目前我觉得我误解了如何使用覆盖?如果有人能指出我正确的方向,我将非常感激!

node.js npm overriding
2个回答
0
投票

只需使用这个命令

npm install [email protected]

它将覆盖版本并更新 package.json 文件中的包版本,并更新节点模块中的包。


0
投票

您有解决这个问题的方法吗?我面临同样的问题

© www.soinside.com 2019 - 2024. All rights reserved.