create-react-app 创建react项目报错 ERESOLVE unable to resolve dependency tree
会报下面这样一个错误,这个错误以前是没有的,最近才出现这个错误。这个非常的蛋疼,意思是testing-library这个库的版本需要react18,但现在安装的是react19。
create-react-app的github是有这个issue的,但官方好像没给解决方案,不知道为什么。
而且这个可能和npm是有关系的,如果用yarn就没有这个问题,只不过安装的react版本也是19。
yarn i create react-app my-app
虽然能解决问题,但是安装的是react19,有时候我们就是想要18这个版本的。
最新的create-react-app版本是5.0.1,我们可以在安装create-react-app的时候指定4.x版本
npm i -g create-react-app@4
虽然能安装成功,但是在使用create-react-app的时候,告诉你不让用了。非常的难受。
反正就是不让你用了。让你用最新的。
实际上, 你通过npm创建的项目虽然报错了,但实际上是可以用的,你可以通过npm start跑起来,但会报找不到web-vitals的错误,你可以手动安装web-vitals,或者把web-vitals相关代码删除。同时你可以手动设置react和react-dom的版本,react-scripts的版本是不可以设置的,如果设置为4.0.3会报错跑不起来,只能用最新的5.0.1。
"dependencies": {"cra-template": "1.2.0","react": "^18.0.0","react-dom": "^18.0.0","react-scripts": "5.0.1","web-vitals": "^2.1.4"},
最终解决方案,没有别的要求的话,上面的配置就可以配置react18并且运行了,还有别的配置需求的话,查看下面的react18的配置文件,需要什么添加什么。
"dependencies": {"@reduxjs/toolkit": "^2.3.0","@testing-library/jest-dom": "^5.17.0","@testing-library/react": "^13.4.0","@testing-library/user-event": "^13.5.0","@types/jest": "^27.5.2","@types/node": "^16.18.119","@types/react": "^18.3.12","@types/react-dom": "^18.3.1","craco-less": "^3.0.1","normalize.css": "^8.0.1","react": "^18.3.1","react-dom": "^18.3.1","react-redux": "^9.1.2","react-router-dom": "^6.27.0","react-scripts": "5.0.1","typescript": "^4.9.5","web-vitals": "^2.1.4"},