kid*_*ney 73
正如丹·阿布拉莫夫(Dan Abramov)在本期中所解释的那样,这(很可能)是一场误报,可以安全地消除。
更具体地说,如果您使用 CRA 并且仅从中引用 nth-check,则这不是问题,因为 CRA 是一个构建工具,易受攻击的代码永远不会进入生成的应用程序包,因此永远不会被客户端调用代码。
您可以通过将“react-scripts”移动到“devDependency”中package.json
并运行来验证这一点npm audit --production
。
Mah*_*ary 31
在告诉您解决方法之前先说几点:
该漏洞似乎react-scripts
是误报(如此处所述)。Dan Abramov 还写了一篇引人入胜的深入博客文章,介绍了npm audit
它的工作原理以及它如何在某种程度上被破坏,特别是对于前端工具的设计。
由于react-scripts
本质上是一个构建工具,即使该漏洞确实是真实的,它也只会被视为一个开发问题,因为无论如何它都会从生产包中删除。
因此,如果您对这个所谓的“漏洞”不采取任何措施,就不会发生任何不好的事情,而且完全没问题。但是,如果存在漏洞的红色警报在美观上让您烦恼或者破坏了您的 CI/CD,那么请继续阅读。
解决方法:
问题似乎是从 lib 开始的@svgr/webpack 4.0.0 - 5.0.0
。
如果您使用的node
版本 >= 16,您可以@svgr/webpack
自行安装,在我的例子中我安装的版本:^6.2.1
as devDependency
。
之后,您应该yarn
在您的文件中创建一个覆盖(或解决方案,如果您使用的是)部分package.json
并包含以下行:"@svgr/webpack": "$@svgr/webpack"
。
最后,您必须删除node_modules
文件夹和package-lock.json
, 并执行npm install
.
小智 9
我确认从 React-scripts 5.0.1 开始它仍然有效,您可以将您的 React 脚本版本从 package.json 中的“依赖项”移动到“devDependency”,如下所示:
"devDependencies": {
"react-scripts": "^5.0.1"
},
Run Code Online (Sandbox Code Playgroud)
“devDependency 是在开发阶段通过在文件中要求它们或作为二进制文件运行而消耗的包。这些包仅在开发期间需要,而对于生产构建不是必需的。”
运行“npmaudit--production”以表明您在生产中不需要反应脚本。
当然,如果您仍然遇到漏洞,则可能是另一个包导致了该漏洞。
https://dev.to/moimikey/demystifying-devdependencies-and-dependency-5ege
小智 8
打开 package.json。你会发现这个:
"dependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3"
}
Run Code Online (Sandbox Code Playgroud)
获取react-scripts并将其移至devDependencies(如果没有,请创建它):
"dependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"react-scripts": "4.0.3"
},
Run Code Online (Sandbox Code Playgroud)
然后,确保你运行"npm audit --production"
这将修复您的警告。
归档时间: |
|
查看次数: |
70596 次 |
最近记录: |