运行react项目,npm run start/build, 报错 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.

如题:这个问题困扰了我半天,网上搜索各种解决方法,都没能解决,最后仔细读一遍原因才发现问题很简单,就是版本不一致

  为啥不一样,哪里有两个相同的依赖呢,请看下文:

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:

  "webpack": "4.19.1"

Don't try to install it manually: your package manager does it automatically.
However, a different version of webpack was detected higher up in the tree:

  E:\company_work\wbwork\zabbix2\node_modules\webpack (version: 3.10.0)

Manually installing incompatible versions is known to cause hard-to-debug issues.

报错如上所示,不一定是webpack,还是其他依赖文件版本冲突,如babel-eslint, babel-loader, webpack-dev-server等等,

这个版本冲突是因为react-scripts中重新依赖了一套相同的,坑爹呀,react自行依赖一套了,结果版本不一致导致的。

怎样看你的项目中是否有相同的依赖

npm ls webpack

如上指令,webpack 可以换成任何同样报错的依赖名称即可查询

结果:

$ npm ls webpack
adminstock@0.1.0 E:\GitLab\adminstock\web
+-- react-scripts@3.4.1
| `-- webpack@4.42.0
`-- webpack@4.41.0

看到了吧,react-scripts 还有相同的一套webapck,但是版本不一样。

要怎么改,其实很简单,

在package.json中,找到react-scirpts,将他的版本号前面的 ^ 这个符号删掉,然后重新npm install 一下就可以了

^ 符号标识最新版本,不是指你当前写的版本,大坑呀。

不信的话,你npm install 完,再运行一下

npm ls webpack  检查版本是不是一样

$ npm ls webpack

adminstock@0.1.0 E:\GitLab\adminstock\web

+-- react-scripts@3.2.0

| `-- webpack@4.41.0 deduped

`-- webpack@4.41.0

完美解决, 亲测