当npm audit没有作用时,如何修复react-scripts v2.1.5与npm包braces的问题?

12

在我的 react 客户端文件夹中,我的 NPM 包给了我 63 个低漏洞,主要涉及 react-scripts 中版本为 2.1.5 的 jest 文件夹中的 braces 包。NPM Audit fix 不起作用,我该怎么办?

我尝试过降级到 react-scripts 的先前版本,通过更新 package.json、删除 package lock 并再次运行 npm install 或者运行 npm update braces 来更新 braces,但是在折腾了 2 小时之后什么也没有起作用。我还尝试回滚到以前的 Github package.json 版本当它正常工作时。我认为它停止工作是因为我尝试下载firebase-ui,但我认为这与更新包有关,因为我已经多次删除了 node modules 和进行了 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": "*"

我遇到的问题如下:

低级别正则表达式拒绝服务

包名称:braces

依赖关系:react-scripts

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

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

3个回答

16

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

这样做仍然导致63个漏洞存在,但它确实将我的braces更新到了最新版本。所以我逐个更新了package-lock.json中所有的braces引用到2.3.2。然后我再次运行了npm update,当我运行npm audit时,漏洞已经不存在了。


npm audit建议可能存在任何semver破坏性更改问题吗? - Mathew
我按照这些说明进行了操作,并在之后通过 npm update 进行了更新,然后警告也消失了。 - Jonathan Sexton
7
我尝试过,但没有成功。 - Daniella
3
@Jony,这个方法可以行得通,但你不应该这样做。package-lock.json是有原因成为自动生成的文件。 - Emobe
1
@Emobe,那么你有什么建议? - Jony
@Jony 我的建议是不要编辑 package-lock.json 文件。 - Emobe

4

4
虽然它不会影响生产代码,但是开发者依赖项中的漏洞仍可能影响您的开发人员或构建过程。 - Wes Souza

1
我曾通过使用resolutions字段并跟随yarn install解决了类似的问题。
  "resolutions": {
    "braces": "= 2.3.1"
  }

我已经检查了 yarn.lock 文件,并确认只有相关的依赖项被更新。
有关此主题的更多信息,请参见https://github.com/yarnpkg/yarn/issues/4986

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接