关于解决webpack版本过高导致的npm start 报错
关于create-react-app npm start webpack 报错 依赖版本4.19.1
刚开始学习react,使用create-react-app创建项目,在npm start运行的时候,控制台报错:
F:\React\11-15\my-app>npm start
> my-app@0.1.0 start F:\React\11-15\my-app
> 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:
"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:
F:\React\node_modules\webpack (version: 4.25.1)
Manually installing incompatible versions is known to cause hard-to-debug issues.
解释为react项目依赖webpack版本为4.19.1,而我安装的是4.25.1,所以导致失败。
解决办法
1.删除全局webpack-cli
webpack4.x开始官方文档是说要安装cli所以如果的在用4.+就需要卸载cli
npm uninstall -g webpack-cli
现在问题来了这样真的卸载了webpack-cli吗?
答案是没有。到现在为止我还没有发现那个webpack-cli是全局安装的,至少官方文档没看到。
那就看下面怎么删除局部webpack-cli
2. 删除本地(局部)webpack-cli
npm uninstall webpack-cli
仔细看你会发现去掉全局参数 -g
这时候你的命令行会快速滚动一些删除信息。
webpack-cli删除成功
3.删除全局webpack
npm uninstall -g webpack
为什么要局部全局删除webpack, 因为你可能在安装webpack时不确定自己是全局安装,还是本地安装,所以建议先执行全局删除命令,然后在执行下面的本地删除命令
4.删除本地webpack
npm un webpack
这时候的webpack是删除完成了
#还没完看下面怎么说
检查webpack残余文件
ls
#用ls命令查看一下是否有这几个文件
1.node_modules
2.package-lock.json
3. package.json
有是最好的,如果没有那你可能还没找到自己本地安装webpack的准确位置
有时候我也找不到了,现在说有的事
rm -rf node_modules package-lock.json package.json
#上面这行命令是删除这些文件的意思
要安装webpack最新版本或特定版本,请运行以下命令之一:
1.第一个安装方式默认安装最新版本
npm install --save-dev webpack
2 第二个安装方式是安装你需要的版本
npm install --save-dev webpack@<version>
3.安装webpack-cli
npm install --save-dev webpack-cli
PS:不要忘记webpack4.+开始webpack-cli是必备的哦
4.检查webpack是否安装成功
webpack -v
PS C:\Windows\system32> webpack -v
4.19.1
执行了这个命令以后会输出一个版本号
我就是重新安装webpack指定版本4.19.1后,解决之前版本过高报错的问题。
F:\React\11-15\my-app>npm start
> my-app@0.1.0 start F:\React\11-15\my-app
> react-scripts start
Starting the development server...
Compiled successfully!
You can now view my-app in the browser.
Local: http://localhost:3000/
On Your Network: http://192.168.1.125:3000/