进行 npm 审计修复时不修改 package.json

Posted

技术标签:

【中文标题】进行 npm 审计修复时不修改 package.json【英文标题】:Not modify package.json when doing npm audit fix 【发布时间】:2019-01-25 01:55:21 【问题描述】:

我已经更新了我的 npm 版本,我认为 npm audit 是一个新功能。当我运行 npm audit fix 时,我的一些包版本从 package.json 更改。我只是想让包裹和我的同事一样

【问题讨论】:

【参考方案1】:

要回答最初的问题,如果您真的想在安装时完全跳过审核(无论出于何种原因,在我的情况下,我想在安装时解决异常),您可以使用--no-audit 标志:

npm install --no-audit

【讨论】:

【参考方案2】:

npm 审计修复不是让您的应用启动和运行所必需的。当我想确保没有潜在的安全漏洞时,我会使用此命令,以便 git hub 不会有任何对象针对我的项目。如果您仍想在不更改其余文件的情况下使用审核修复,请尝试此命令

在不修改 node_modules 的情况下运行审计修复,但仍更新 pkglock:

 $ npm audit fix --package-lock-only

跳过更新 devDependencies:

  $ npm audit fix --only=prod

进行试运行以了解审计修复的作用,并以 JSON 格式输出安装信息:

$ npm audit fix --dry-run --json

查看此链接以供将来参考: https://docs.npmjs.com/cli/audit

【讨论】:

不幸的是,npm audit fix --package-lock-only 在某些情况下会更改 package.json。例如:您引用了react-script 版本3.2.0,那么即使带有--package-lock-only 标志,它也会将此包更新到3.3.0 或更高版本。

以上是关于进行 npm 审计修复时不修改 package.json的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 npm 审计报告

npm 审计修复与 npm 安装

npm 审计修复:1 个高严重性漏洞:任意文件覆盖

npm 审计修复后如何解决原型污染 lodash 需要人工审核

Npm 漏洞无法修复

如何修复 NPM 高危漏洞? (污染)