- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我在一个新项目中安装了 Jest,由于以下错误,该应用程序停止运行。
总结:它告诉我我已经手动安装了对 node_modules
的依赖,这是我没有做的,它要求我删除我的整个 node_modules
和 yarn.lock
。但这些步骤不起作用。
注意:从 package.json
中删除依赖项,然后删除 node_modules
和 yarn.lock
确实修复了问题,但是当我再次安装jest
时,它又陷入了同样的问题。
我安装 jest 的步骤,here :
$ yarn add --dev react-test-renderer
$ yarn add --dev jest babel-jest @babel/preset-env @babel/preset-react react-test-renderer
错误信息
$ react-scripts start
There might be a problem with the project dependency tree.
It is likely not a bug in Create React App, but something you need to fix locally.
The react-scripts package provided by Create React App requires a dependency:
"jest": "26.6.0"
Don't try to install it manually: your package manager does it automatically.
However, a different version of jest was detected higher up in the tree:
C:\WORK\plotting-a-chart\node_modules\jest (version: 26.6.3)
Manually installing incompatible versions is known to cause hard-to-debug issues.
If you would prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That will permanently disable this message but you might encounter other issues.
To fix the dependency tree, try following the steps below in the exact order:
1. Delete package-lock.json (not package.json!) and/or yarn.lock in your project folder.
2. Delete node_modules in your project folder.
3. Remove "jest" from dependencies and/or devDependencies in the package.json file in your project folder.
4. Run npm install or yarn, depending on the package manager you use.
In most cases, this should be enough to fix the problem.
If this has not helped, there are a few other things you can try:
5. If you used npm, install yarn (http://yarnpkg.com/) and repeat the above steps with it instead.
This may help because npm has known issues with package hoisting which may get resolved in future versions.
6. Check if C:\WORK\plotting-a-chart\node_modules\jest is outside your project directory.
For example, you might have accidentally installed something in your home folder.
7. Try running npm ls jest in your project folder.
This will tell you which other package (apart from the expected react-scripts) installed jest.
If nothing else helps, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That would permanently disable this preflight check in case you want to proceed anyway.
P.S. We know this message is long but please read the steps above :-) We hope you find them helpful!
我尝试了所有步骤,我已经使用了 yarn
,我什至在执行步骤 1 到 4 之前清除了我的 yarn 缓存。
package-lock.json
(不是 package.json!)和/或 yarn.lock
;node_modules
;package.json
文件中的依赖项和/或 devDependencies 中删除“jest”;我没有想法。
// package.json
{
"name": "project",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"node-sass": "^5.0.0",
"prismjs": "^1.23.0",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-hook-form": "^6.15.5",
"react-icons": "^4.2.0",
"react-resizable": "^1.11.1",
"react-scripts": "4.0.3",
"react-vis": "^1.11.7"
},
"scripts": {
"dev": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"unit": "jest"
},
"eslintConfig": {
"extends": [
"react-app"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@babel/preset-env": "^7.13.12",
"@babel/preset-react": "^7.13.13",
"babel-jest": "^26.6.3",
"babel-plugin-root-import": "^6.6.0",
"jest": "^26.6.3",
"react-test-renderer": "^17.0.2"
}
}
// babel.config.js
module.exports = {
presets: ['@babel/preset-env', '@babel/preset-react'],
};
最佳答案
您不必 npm install jest。错误告诉你:
Don't try to install it manually.
这是它在 react documentation 上的内容
If you use Create React App, Jest is already included out of the boxwith useful defaults.
要解决您的问题,您应该运行此命令:
npm uninstall --save-dev jest
npm uninstall --save jest
rm node_modules
npm i
关于javascript - 如何使用 Jest 修复 React App 的依赖错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66891027/
我正在为我的 react 项目编写单元测试用例,并使用 Jest 和 enzyme 来编写测试用例。我已阅读 Jest 文档 https://jestjs.io/docs/en/jest-object
运行测试时出现以下错误: 无法从“jest-expect.js”中找到模块“jest-matchers” at Resolver.resolveModule (node_modules/jest-
如何使用 jest.run() 或 jest.runCLI() 以编程方式运行所有测试?我应该用什么作为论据? 我试图找到有关它们的文档但失败了。 如果上述函数不起作用,如果我想以编程方式运行 jes
用 Jest 和 enzyme 测试 react 和 typescript ,我如何模拟这个 ExpectsVideo 函数,以便我可以根据我的测试用例场景定义它是否返回 true 或 false j
用 Jest 和 enzyme 测试 react 和 typescript ,我如何模拟这个 ExpectsVideo 函数,以便我可以根据我的测试用例场景定义它是否返回 true 或 false j
我正在使用以下 jest.unittest.json 文件(通过 jest --config 选项使用): { "bail": false, "verbose": true, "trans
我跑npm init npm i -D jest像这样 tutorial 运行推荐 nmp test 后出现此错误 这不是生物.js 或生物.test.js 的错误,因为没有发生此文件错误。我怎样才能
我有一个 Mongoose 模型: var mongoose = require("mongoose"); var transactionSchema = mongoose.Schema({ ca
我在我的角度项目中进行了 Jest 测试。 我有一个 package.json 文件指定了我想用来运行测试的 jest 版本。该文件包括: "@types/jest": "^24.0.18", "je
我正在尝试使用 jest 编写单元测试用例,并且需要模拟以下模式。我收到 TypeError: is not a constructor。 用例:我的用例如下所述 我的组件.js : import
所以我正在使用 jest测试我的 node.js 应用程序,测试完成得很好,但我从 jest 收到一条关于打开句柄的消息。任何见解? jest --detectOpenHandles 通过 src/l
我正在使用 Babel Jest 来转换我的代码以进行测试。 我不知道如何使用相对于项目根目录的路径。 例如,如果我在一个测试文件中导入一个模块:/imports/ui/myModule Jest 抛
我正在致力于更新 Express 微服务的测试。对于某些目录(即我们的 /utils 文件夹),我编写了大量测试,显示覆盖率达到 80-90%。在/routes目录下,有0个测试,但显示100%。 总
我收到以下错误: import React from 'react'; ^^^^^^ SyntaxError: Unexpected token import 原因是一些模块/s在npm中发布时没有编
我正在创建一个 Jest 测试来测试是否记录了用于 superFetch 函数错误处理的指标。我的方法是为 retryFetch 创建一个模拟函数并返回一个 Promise 拒绝事件。我希望它能进入
我正在设置一些新的配置来开 Jest ,我忽略了一些文件,比如 *.stories.js,但是当我使用 *.js.snap 或 *.snap,这个 Jest 不太行。 我正在使用 react-scri
PS E:\react\Code\UI> yarn 测试 yarn 运行 v1.17.3$开 Jest 失败 src/App.test.js ● 测试套件运行失败 Jest encountered a
我是开 Jest 测试的新手,我写了下面的测试。我 Jest mock 了一个函数并将其作为参数传递。但是当运行测试时,在日志中我可以看到函数 onSuccess 被调用。但 expect 失败并出现
我是测试新手。我正在使用 JEST 来测试我的 nodejs API。当我在一个文件中编写所有测试时,它可以正常运行,没有任何错误,但是当我分离它时,它给我的端口已经在使用中。至于每个文件,它运行不同
我正在编写一个 Jest 模拟,但是在模拟本身之外定义一个模拟函数时我似乎遇到了问题。 我有一个类: myClass.js class MyClass { constructor(name) {
我是一名优秀的程序员,十分优秀!