如何更新 package-lock.json 中的依赖项

How to update a dependency in package-lock.json

我第一次收到来自 GitHub 的关于我项目的一些依赖项的潜在安全问题(标签:高严重性)的通知。这是示例消息:

url-parse vulnerability found in package-lock.json

这是建议的解决方案:

Upgrade url-parse to version 1.4.3 or later. For example:

"dependencies": {
  "url-parse": ">=1.4.3"
}

或者……

"devDependencies": {
  "url-parse": ">=1.4.3"
}

现在,我所做的只是根据 official documentation 在我的终端中通过 运行 npm outdated -g --depth=0 检查任何过时的包并执行 npm -g update 命令(我还尝试使用 npm update url-parse) 来定位依赖项本身。一些软件包已成功更新,但似乎没有找到导致问题的软件包。我是否应该通过添加建议的代码行来手动更新它:"url-parse": ">=1.4.3"

最后,我应该在多大程度上关注此类警报?

谢谢!

更新它的最简单方法可能是按照您的建议进入 package-lock.json 文件,并将 url-parse 下的旧 "version": "#.#.#" 修改为 "version": ">=1.4.3" JSON对象。我建议 COMMAND+Fing 依赖项名称(CONTROL+F 对于 W indows 用户)因为 package-lock.json 文件很容易有数千行长,一旦你找到你的依赖项,改变GitHub 认为可以免受此漏洞影响的版本号。

我刚刚创建了一个新的 repo,我收到了一条关于 ws 依赖项的非常相似的消息,在手动更新 package-lock.json 文件中的版本后,我在刷新 GitHub 提醒页面:

No open alerts on ws were found in package-lock.json.
Alerts may have been resolved and deleted by recent pushes to this repository.

作为参考,这是我在更新 ws 依赖项之前的样子:

"ws": {
      "version": "1.1.5",
      "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
      "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==",
      "dev": true,
      "requires": {
        "options": ">=0.0.5",
        "ultron": "1.0.x"
      }

及之后:

"ws": {
      "version": ">=3.3.1",
      "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
      "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==",
      "dev": true,
      "requires": {
        "options": ">=0.0.5",
        "ultron": "1.0.x"
      }

你现在可能已经弄明白了,因为我看到你大约一年前发布了这个问题,但把它留在这里是为了帮助以后遇到类似问题的任何人。

您不需要手动编辑锁定文件,只需运行:

npm install --package-lock-only url-parse

它应该安装最新版本的包并只更新锁定文件

由于未知原因它也更新 package.json 所以你需要:

git checkout package.json