Javascript 如何使用Jest修复React应用程序的依赖项错误

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

因此,我在一个新项目中安装了Jest,由于下面的错误,应用程序停止运行

摘要:它告诉我,我已经手动安装了一个对
节点单元
的依赖项,这是我没有做的,它要求我删除整个
节点单元
纱线.锁
。但这些步骤并不奏效

注意:
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”
  • 运行npm install或Thread,具体取决于您使用的软件包管理器
  • 我没有主意了

    //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,它声称我在使用它