NPM-AUDIT 发现高漏洞。我应该做些啥?
Posted
技术标签:
【中文标题】NPM-AUDIT 发现高漏洞。我应该做些啥?【英文标题】:NPM-AUDIT find to high vulnerabilities. What am I supposed to do?NPM-AUDIT 发现高漏洞。我应该做些什么? 【发布时间】:2020-04-28 20:15:50 【问题描述】:npm audit
在我的项目上运行并得到了这个
高级命令注入 @angular-devkit/build-angular [dev] 的依赖
路径 @angular-devkit/build-angular > @ngtools/webpack > 砍树
更多信息https://npmjs.com/advisories/1432
高级命令注入
包树杀
已在 >=1.2.2 中修补
@angular-devkit/build-angular [dev] 的依赖关系
路径@angular-devkit/build-angular > 杀树
更多信息https://npmjs.com/advisories/1432
Tree-kill 需要更新,但它是 Angular 的一个部门,不是我的。所以呢?需要等待 angular-team 将自己的 package.json 更新为更新版本的 tree-kill?
【问题讨论】:
【参考方案1】:您无需等待新版本的软件包 @angular-devkit/build-angular
即可解决此问题。
只需执行以下步骤:
-
更新您的
package.json
文件,添加resolutions
部分,使用正确版本的包tree-kill
:
"resolutions":
"tree-kill": "1.2.2"
-
通过运行命令更新您的
package-lock.json
:
npx npm-force-resolutions
-
在您的项目中重新安装 NPM 包:
rm -r node_modules
npm install
运行npm audit
以检查您的项目是否不再存在此问题。并且不要忘记提交修改过的文件package.json
和package-lock.json
。
更多关于NPM Force Resolutions的信息。
【讨论】:
【参考方案2】:我今天遇到了同样的问题,我通过以下方式解决了它:
-
从 node_modules 文件夹中删除 tree-kill 包。
删除 package-lock.json 文件。
进入node_modules文件夹中的@angular-devkit/build-angular文件夹,编辑package.json文件;将 tree-kill 版本从 1.2.1 更改为 1.2.2
转到 node_modules 文件夹中的 @ngtools/webpack 文件夹,并执行与步骤 3 相同的操作。
之后运行 npm install。
【讨论】:
所以通过这个修复,我必须用 Git 保留 node_modules 文件夹对吗? 我不确定您的问题是否正确,但您需要在新安装后提交新的更改。 手动编辑您的依赖关系不是一个好主意,因为重新安装项目将代表问题【参考方案3】:我也遇到了这个问题,经过一番研究,我发现了一些东西:
NPM throws error on "audit fix" - Configured registry is not supported
当然,这是关于另一个问题,但是通过调整那里给出的解决方案,它解决了我的问题。
所以:
删除tree-kill的node_modules文件夹 像之前那样编辑 package-lock.json 文件,但改用 tree-kill 模块。 别忘了在最后运行 npm install我希望我已经足够清楚了。
【讨论】:
如果在步骤1中删除tree-kill的node_modules文件夹时应该删除它,我该如何在第二步中编辑package-lock.json?【参考方案4】:检查 GitHub 存储库以查看是否正在修复。我发现了这个问题:https://github.com/angular/angular-cli/issues/16629 和一个拉取请求 (https://github.com/angular/angular-cli/pull/15894),它删除了依赖项。
【讨论】:
【参考方案5】:将以下代码添加到 package.json
"resolutions":
"tree-kill":"1.2.2"
删除所有节点模块:
rm -r node_modules
将新版本 1.2.2 的 package-lock.json 更新为:
npx npm-force-resolutions
现在安装节点模块:
npm install
这对我有用。
【讨论】:
【参考方案6】:从 node_modules 文件夹中移除 tree-kill 包并删除 package-lock.json 文件。
找到@angular-devkit/build-angular node_modules 文件夹中的文件夹并编辑 package.json 文件; 将 tree-kill 版本从 1.2.1 更改为 1.2.2 找到@ngtools/webpack 在 node_modules 文件夹中并编辑 package.json 文件; 将 tree-kill 版本从 1.2.1 更改为 1.2.2
运行 npm 安装。【讨论】:
【参考方案7】:将 package.json 中的 @angular-devkit/build-angular 版本更新到以下:
"@angular-devkit/build-angular": "0.13.10"
它对我有用。
【讨论】:
以上是关于NPM-AUDIT 发现高漏洞。我应该做些啥?的主要内容,如果未能解决你的问题,请参考以下文章