当 npm 审计什么都不做时,如何修复 react-scripts v2.1.5 的 npm 包大括号问题?

How to fix npm package braces issue with react-scripts v2.1.5 when npm audit does nothing?

我的 React 客户端文件夹中的 NPM 包给了我 63 个低漏洞,所有漏洞都处理主要在版本 2.1.5 的 react-scripts 包的 jest 文件夹中的大括号包。 NPM 审计修复不起作用,我该怎么办?

我尝试降级到以前版本的 react-scripts,通过更新 package.json、删除包锁和 运行 npm 再次安装来更新大括号,或者 运行 npm update braces,但经过 2 小时的摆弄后没有任何效果。我还尝试恢复到我的 Github package.json 工作时的先前版本。我相信它在我尝试下载 firebase-ui 后停止工作,但我认为它与更新包有关,因为我已经删除了节点模块和 npm 安装几次。

这是我的清理 package.json 搞砸了。

"webpack-dev-server": "3.1.14",
"@babel/core": "*",
"axios": "*",
"body-parser": "*",
"bootstrap": "*",
"cors": "*",
"dotenv": "*",
"draft-js": "*",
"draft-js-export-html": "*",
"errorhandler": "*",
"express": "*",
"express-session": "*",
"history": "*",
"jquery": "*",
"moment": "*",
"mongoose": "*",
"morgan": "*",
"node-sass-chokidar": "*",
"npm-run-all": "*",
"path": "*",
"query-string": "*",
"react": "*",
"react-dom": "*",
"react-loadable": "*",
"react-redux": "*",
"react-router-dom": "*",
"react-router-redux": "*",
"react-scripts": "*",
"react-validation": "*",
"reactstrap": "*",
"recharts": "*",
"redux": "*",
"redux-logger": "*",
"redux-observable": "*",
"redux-thunk": "*",
"rxjs": "*",
"rxjs-compat": "*",
"validator": "*"

这是我遇到的问题:

低正则表达式拒绝服务

包大括号

反应脚本的依赖

路径 react-scripts > jest > jest-cli > micromatch > braces

更多信息https://nodesecurity.io/advisories/786

我运行npm install braces@2.3.1然后npm update

这仍然导致了 63 个漏洞,但它确实使我对当前版本有了信心。所以我检查并更新了 package-lock.jsonbraces 的所有引用到 2.3.2。然后我再次 运行 npm update,当我 运行 npm audit 时,漏洞就消失了。

Jest 是一个测试包,永远不会出现在您的生产包中,您可以无风险地忽略此漏洞。

这个包https://github.com/naugtur/npm-audit-resolver#readme可以帮助您忽略低漏洞。

我能够通过 resolutions 字段后跟 yarn install -

解决类似问题
  "resolutions": {
    "braces": "= 2.3.1"
  }

我检查了 yarn.lock 并确认只有相关的依赖项已更新。

这里有更多关于这个主题的内容 - https://github.com/yarnpkg/yarn/issues/4986