Javascript 如何使用Jest修复React应用程序的依赖项错误
因此,我在一个新项目中安装了Jest,由于下面的错误,应用程序停止运行 摘要:它告诉我,我已经手动安装了一个对Javascript 如何使用Jest修复React应用程序的依赖项错误,javascript,node.js,reactjs,jestjs,yarnpkg,Javascript,Node.js,Reactjs,Jestjs,Yarnpkg,因此,我在一个新项目中安装了Jest,由于下面的错误,应用程序停止运行 摘要:它告诉我,我已经手动安装了一个对节点单元的依赖项,这是我没有做的,它要求我删除整个节点单元和纱线.锁。但这些步骤并不奏效 注意:从package.json中删除依赖项,然后删除node\u模块和warn.lock确实解决了问题,但当我再次安装jest时,它也会遇到同样的问题 我安装jest的步骤是: 纱线添加--dev react测试渲染器 $THEAN add--dev jest babel jest@babel/p
节点单元
的依赖项,这是我没有做的,它要求我删除整个节点单元
和纱线.锁
。但这些步骤并不奏效
注意:从package.json
中删除依赖项,然后删除node\u模块
和warn.lock
确实解决了问题,但当我再次安装jest
时,它也会遇到同样的问题
我安装jest的步骤是:
纱线添加--dev react测试渲染器
$THEAN add--dev jest babel jest@babel/preset env@babel/preset react测试渲染器
错误消息
$react脚本启动
项目依赖关系树可能有问题。
这可能不是CreateReact应用程序中的错误,而是您需要在本地修复的错误。
Create react App提供的react脚本包需要依赖项:
“笑话”:“26.6.0”
不要尝试手动安装:您的软件包管理器会自动安装。
但是,在树的较高位置检测到不同版本的jest:
C:\WORK\plotting-a-chart\node\u modules\jest(版本:26.6.3)
手动安装不兼容版本会导致难以调试的问题。
如果希望忽略此检查,请将SKIP\u PREFLIGHT\u check=true添加到项目中的.env文件中。
这将永久禁用此消息,但您可能会遇到其他问题。
若要修复依赖关系树,请按确切顺序尝试以下步骤:
1.删除项目文件夹中的package-lock.json(不是package.json!)和/或warn.lock。
2.删除项目文件夹中的节点模块。
3.从项目文件夹中package.json文件中的依赖项和/或devdependency中删除“jest”。
4.运行npm install或Thread,具体取决于您使用的软件包管理器。
在大多数情况下,这应该足以解决问题。
如果这没有帮助,您可以尝试其他一些方法:
5.如果使用npm,请安装纱线(http://yarnpkg.com/)并用它重复上述步骤。
这可能会有所帮助,因为npm在包装吊装方面存在已知问题,这些问题可能会在未来的版本中得到解决。
6.检查C:\WORK\plotting-a-chart\node\u modules\jest是否在项目目录之外。
例如,您可能意外地在主文件夹中安装了某些内容。
7.尝试在项目文件夹中运行npm ls jest。
这将告诉您安装了jest的其他包(预期的react脚本除外)。
如果没有其他帮助,请将SKIP\u PREFLIGHT\u CHECK=true添加到项目中的.env文件中。
这将永久禁用此飞行前检查,以防您仍要继续。
另外,我们知道这条消息很长,但请阅读上面的步骤:-)我们希望它们对您有所帮助!
我尝试了所有步骤,我已经使用了纱线
,我甚至在执行步骤1到4之前清除了纱线缓存
package lock.json
(不是package.json!)和/或warn.lock
李>
package.json
文件中的依赖项和/或devdependency中删除“jest”李>
//package.json
{
“名称”:“项目”,
“版本”:“0.1.0”,
“私人”:没错,
“依赖项”:{
“@testing library/react”:“^11.1.0”,
“@测试库/用户事件”:“^12.1.10”,
“节点sass”:“^5.0.0”,
“prismjs”:“^1.23.0”,
“反应”:“^17.0.1”,
“react dom”:“^17.0.1”,
“反应钩形式”:“^6.15.5”,
“反应图标”:“^4.2.0”,
“反应可调整大小”:“^1.11.1”,
“反应脚本”:“4.0.3”,
“反应视觉”:“^1.11.7”
},
“脚本”:{
“开发人员”:“反应脚本启动”,
“构建”:“反应脚本构建”,
“测试”:“反应脚本测试”,
“弹出”:“反应脚本弹出”,
“单位”:“玩笑”
},
“eslintConfig”:{
“扩展”:[
“反应应用程序”
]
},
“浏览者”:{
“生产”:[
">0.2%",
“没有死”,
“不是全部”
],
“发展”:[
“上一个chrome版本”,
“上一个firefox版本”,
“最后1个safari版本”
]
},
“依赖性”:{
“@babel/preset env”:“^7.13.12”,
“@babel/preset react”:“^7.13.13”,
“巴别塔笑话”:“^26.6.3”,
“babel插件根导入”:“^6.6.0”,
“笑话”:“^26.6.3”,
“反应测试渲染器”:“^17.0.2”
}
}
//babel.config.js
module.exports={
预设:['@babel/preset env','@babel/preset react'],
};
我确实解决了这个问题,在项目文件夹中创建了一个.env
文件,使用SKIP\u PREFLIGHT\u CHECK=true
,现在测试运行程序似乎工作得很好。您不必npm安装jest。你的错误告诉你:
不要试图手动安装它
这是上面写的
如果您使用CreateReact应用程序,Jest已经包含在开箱即用的应用程序中
使用有用的默认值
要解决您的问题,您应该运行以下程序:
npm uninstall --save-dev jest
npm uninstall --save jest
rm node_modules
npm i
当我遇到这个问题时,我使用堆栈跟踪来确定它要查找的jest版本。然后我删除了它,重新安装了它想要的版本。为了安全起见,我会执行它建议的整个过程,但请确保您安装了它要求的版本它仍在您的
依赖项中
?何时?如果我删除节点_模块并将其从package.json中删除,则不会。但如果我再次安装jest,我不确定我是否理解。整个问题是一个笑话版本不匹配。你将它显式地放在devdependences
中,错误消息说不要(#3在你的列表中)。问题是,我已经在使用最新版本26.6.3,它声称我在使用它