使用react 18创建react应用程序依赖版本问题



npx create-react-app my-project导致以下依赖性错误:

npx版本:8.5.0

Installing template dependencies using npm...
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: react-18@0.1.0
npm ERR! Found: react@18.0.0
npm ERR! node_modules/react
npm ERR!   react@"^18.0.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer react@"<18.0.0" from @testing-library/react@12.1.5
npm ERR! node_modules/@testing-library/react
npm ERR!   @testing-library/react@"^12.0.0" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

该命令仍然生成一个项目目录,但在创建的目录中运行npm start会出错,node-modules中缺少web-vitals

尝试的解决方案

  • 根据上述错误消息的建议,使用--force--legacy-peer-deps运行相同的命令并不能解决问题。

  • 删除node_modulespackage-lock.json并运行npm i也不能解决问题。

更新

该问题已通过create-react-app的最新更新得到修复。现在它创建了一个没有任何问题的项目。

在修复之前,您可以删除node_modules文件夹和package-lock.json。接下来,打开package.json并更改
"react": "^18.0.0"&CCD_ 15到早期版本,例如:
"react": "^17.0.2"&"react-dom": "^17.0.2"
最后,您可以运行npm install

替代解决方案(先试试这个!(:
joooni1998建议的解决方案(:

  1. 删除node_modulespackage-lock.json
  2. 运行npm i web-vitals --save-dev
  3. 运行npm install

然后您可以再次使用npm run buildnpm start

请在此处查看Github问题。

这里有一个临时的解决方法:

  • 将cra模板安装到一个单独的文件夹(而不是您的新文件夹项目应用程序的文件夹(;npm安装cra模板;

  • 转到已安装的cra模板包文件夹;template.json";改变线"@测试库/反应":"12.0.0〃到"@测试库/反应":"13.0.0〃

  • 返回您的根文件夹并运行npx create react app my app(您的应用程序名称(--模板文件:PATH_to_your_CUSTOM_template

此外,您可以让构建失败,删除node_modules文件夹以及package-json.lock文件。打开package.json文件,将react和react dom更改为早期版本。

例如:

{
"name": "frontend",
"version": "0.1.0",
"private": true,
"dependencies": {
"cra-template": "1.1.3",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "5.0.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

删除报告WebVitals.js从index.js中删除import reportWebVitals from './reportWebVitals';从index.js 底部删除reportWebVitals();

最后运行npm安装

它通过删除'node_modules'文件夹和'package-lock.json'文件对我起到了作用。然后,根据Gavriel的回答,我在package.json文件中将react和react dom版本都更改为17.0.2,而不是18.0.0https://stackoverflow.com/a/71836018/12490294.然后,在应用程序文件夹中,我运行

npm i web-vitals --save-dev

然后

npm start

应用程序成功启动

或者您可以尝试此npx --legacy-peer-deps create-react-app my-appname或goto index.js并删除web生命体征的使用

或者使用CCD_ 28降级npm并创建react app。

您可以使用yarn add create-react-app your-app代替

自从被问到这个问题以来,已经有一年多了,尽管OP建议在create-react-app的新版本中已经修复了它,但它仍然没有修复。此外,package.json中的降级反应也不起作用。在我的应用程序工作之前,我不得不冒着风险用--legacy-peer-deps运行命令。

尝试使用--force或使用--legacy peer deps运行,两者都可以毫无问题地安装依赖项。

如果这不起作用,那么删除节点模块文件夹并开始从头开始安装

最新更新