nth-check@^1.0.2: //so far. This version can be different for an older projet.
version "1.0.2"
resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz"
你想修改所有错误的版本,它应该看起来像这样:
nth-check@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz"
css-select@npm:^2.0.0":
version: 2.1.0
resolution: "css-select@npm:2.1.0"
dependencies:
boolbase: ^1.0.0
css-what: ^3.2.1
domutils: ^1.7.0
nth-check: ^2.0.1 // this is where you need to make change
checksum: 0c4099910f2411e2a9103cf92ea6a4ad738b57da75bcf73d39ef2c14a00ef36..
languageName: node
linkType: hard
8条答案
按热度按时间bakd9h0s1#
正如Dan Abramov在this问题中解释的那样,这(很可能)是一个假警报,可以安全地解除。
更具体地说,如果您正在使用CRA,并且仅从CRA引用第n次检查,则这不是问题,因为CRA是一个构建工具,易受攻击的代码永远不会进入生成的应用程序包,因此永远不会被客户端代码调用。
您可以通过将“react-scripts”移到
package.json
中的“devDependencies”并运行npm audit --production
来验证这一点。mv1qrgav2#
在告诉您解决方法之前,请注意以下几点:
1.看起来
react-scripts
漏洞是一个假警报(如here所讨论的)。Dan Abramov还写了一篇引人入胜的深入的blog post文章,讲述了npm audit
是如何工作的,以及它是如何以某种方式被破坏的,特别是对于设计的前端工具。1.由于
react-scripts
本质上是一个构建工具,因此即使漏洞确实存在,它也只会被视为一个开发问题,因为它无论如何都会从产品包中剥离出来。因此,如果你对这个所谓的“漏洞”什么都不做,就不会发生什么坏事,一切都很好。但如果存在漏洞的红色警报在美学上惹恼了你,或者破坏了你的CI/CD,那么请继续阅读。
解决方法:
问题似乎是从lib
@svgr/webpack 4.0.0 - 5.0.0
开始的。如果您使用的是
node
version〉= 16,您可以自己安装@svgr/webpack
,在我的例子中,我安装了版本:^6.2.1
作为devDependency
。之后,您应该在
package.json
中创建一个覆盖(或解决方案,如果您使用yarn
)部分,并包含以下行:"@svgr/webpack": "$@svgr/webpack"
.最后,必须删除
node_modules
文件夹和package-lock.json
,然后执行npm install
。变通办法信贷。
zbdgwd5y3#
我确认从react-scripts 5.0.1开始,您可以将您的react脚本版本从package.json中的“dependencies”移动到“devDependencies”,如下所示:
devDependencies是指在开发阶段需要在文件中使用或作为二进制文件运行的包。这些包仅在开发期间需要,而在生产版本中不需要。
运行“npm audit --production”以表明您在生产环境中不需要React脚本。
当然,如果您仍然遇到漏洞,则可能是其他软件包导致了该漏洞。
https://dev.to/moimikey/demystifying-devdependencies-and-dependencies-5ege
ccgok5k54#
打开package.json,您将看到以下内容:
获取react-scripts并将其移动到devDependencies(如果没有,请创建它):
然后,确保运行
"npm audit --production"
这将修复您的警告。
jhdbpxl95#
我也在使用React脚本@^5.0.0
所以,我个人还是建议先用Yarn。不过每个人都有自己的喜好!这样做,可以打字
之后,您可以删除您的package-lock文件,并在您的应用程序的文件夹中运行以下命令
(such这将生成一个yarn.lock文件。注意,您应该避免同时使用yarn和npm!
在同一个yarn.lock文件中,你必须搜索第nth-check字符串!在一个全新的react应用程序中(到目前为止),你应该找到8个出现的字符串。这个字符串将被设置在软件包版本旁边。这就是你想要修改的。
在我的例子中,我有
你想修改所有错误的版本,它应该看起来像这样:
你将不得不改变一对夫妇的版本虽然。不只是一个。我编辑它(-6倍,我相信。如果你保存文件,启动一个简单的
命令,后跟
应该能解决你的一个问题!
希望这对你有帮助,干杯!
brccelvz6#
如果上面提到的任何方法都不起作用,那么试试这个:
首先使用
纳米粒子检测
现在,如果代码中未使用漏洞模块,则转到"package-lock.json"并搜索漏洞路径,如
节点模块/svgo/节点模块/第n次检查
并在json文件中删除此依赖项
那就跑
国家预防机制审计
这将显示
这通常发生在使用
npx创建React应用程序"应用程序"
并试图安装一个模块"React脚本"
zzwlnbp87#
并选中
" npm -g list "
和
"npm install -g create-react-app"
之后
"npx create-react-app ./"
r8xiu3jd8#
我不得不将一个特定的依赖项及其子依赖项版本更改为2.0.1,在我的案例中,出现问题的依赖项是“css-select@npm:^2.0.0”,
只需在yarn.lock文件中搜索第n次检查,您将发现第n次检查依赖项作为“css-select@npm:^2.0.0”中的子依赖项,您需要将版本从“1.0.2”更改为“2.0.1”,其外观如下所示
任何仍使用此旧版本的第n次检查作为子依赖项的依赖项都必须更新,这将解决该问题