NPM-AUDIT发现高漏洞。我应该做些什么?


13

npm audit 运行我的项目,并得到我这个


@ angular-devkit / build-angular [dev]的高命令注入依赖性

路径@ angular-devkit / build-angular> @ ngtools / webpack> tree-kill

更多信息 https://npmjs.com/advisories/1432

高指令注入

包树杀

在> = 1.2.2中修补

@ angular-devkit / build-angular [dev]的依赖性

路径@ angular-devkit / build-angular> tree-kill

更多信息 https://npmjs.com/advisories/1432

树的杀伤力需要更新,但它是有角度的,而不是我的。所以呢?需要等待那个角度小组将其自己的package.json更新为更新版本的tree-kill吗?

Answers:


11

您可以解决此问题,而无需等待软件包的新版本@angular-devkit/build-angular

只需执行以下步骤:

  1. package.json通过添加resolutions带有正确版本的package的部分来更新文件tree-kill
"resolutions": {
  "tree-kill": "1.2.2"
}
  1. package-lock.json通过运行命令更新:
npx npm-force-resolutions
  1. 在您的项目中重新安装NPM软件包:
rm -r node_modules
npm install

运行npm audit以检查您的项目不再有此问题。并且不要忘记提交修改后的文件package.jsonpackage-lock.json

有关NPM力决议的更多信息。


11

我今天遇到了同样的问题,并通过以下方法解决了问题:

  1. 从node_modules文件夹中删除tree-kill软件包。
  2. 删除package-lock.json文件。
  3. 转到node_modules文件夹中的@ angular-devkit / build-angular文件夹,然后编辑package.json文件;将树杀版本从1.2.1更改为1.2.2
  4. 转到node_modules文件夹中的@ ngtools / webpack文件夹,然后执行与步骤3相同的操作。

之后运行npm install。


1
因此,通过此修复程序,我必须将Git保留在node_modules文件夹中,对吗?
洛基(Loki)

我不确定我是否正确回答了您的问题,但是您需要在新安装后提交新更改。
Saleem

1
手动编辑依赖项不是一个好主意,因为重新安装项目将代表问题
Nemus

2

我也有这个问题,经过一些研究,我发现了一些东西:

NPM在“审核修复”上引发错误-不支持配置的注册表

当然,这是另一个问题,但是通过调整那里给出的解决方案,它解决了我的问题。

因此:

  • 删除tree-kill的node_modules文件夹
  • 像完成操作一样编辑package-lock.json文件,但改用tree-kill模块。
  • 不要忘了最后运行npm install

我希望我已经足够清楚了。


如果在步骤1中删除tree-kill的node_modules文件夹时应该删除package-lock.json,该如何在第二步中对其进行编辑?
毛里西奥·马丁内斯


0
  1. 从node_modules文件夹中删除tree-kill软件包并删除
    package-lock.json文件。

  2. 在node_modules文件夹中找到@ angular-devkit / build-angular文件夹,然后编辑package.json文件;将Tree-kill版本从1.2.1更改为1.2.2
    ,在node_modules文件夹中找到@ ngtools / webpack并编辑package.json文件;将树杀版本从1.2.1更改为1.2.2

  3. 运行npm install。

0

将以下代码添加到package.json

"resolutions": {
"tree-kill":"1.2.2"
}

删除所有节点模块:

rm -r node_modules

将新版本1.2.2的package-lock.json更新为:

npx npm-force-resolutions

现在安装节点模块:

npm install

这对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.