webpack5.x下使用webpack-dev-server报错
在我学习webpack5.x的时候,安装webpack-dev-server的时候,碰到安装webpack-dev-server安装不上的情况,即使直接在packsge.json里面直接添加相应的插件然后npm install也是不可以的,报错信息
webpack-sev-server --inline --progress --config build/webpack.dev.conf.js
经过多方查找,发现是webpack版本过高的问题,那就降低版本,接着,我开始去安装webpack4.x的版本,先npm uninstall webpack webpack-cli(因为webpck-cli的版本号也过高,所以一起卸载了),然后安装webpack4.x的版本,接着就报错
unable to resolve dependency tree
npm ERR!
npm ERR! Found: webpack@5.5.1
npm ERR! node_modules/webpack
npm ERR! webpack@"4.41.5" from the root project
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.
这个报错的问题我查了好久,中间经历了卸载node_modules,重新npm install,或者直接修改package.json里面webpack和webpack-cli的版本号,然后npm install更新node_modules,还是不行,经历了一夜的思考,加上百度翻译的帮助,忽然发现了package-lock.json的存在
在不确定的情况下,我查了一下package-lock.json的作用:其实用一句话来概括很简单,就是锁定安装时的包的版本号,并且需要上传到git,以保证其他人在npm install时大家的依赖能保证一致。
好嘛,打开package-lock.json查找webpack的版本号。。。。。。果然,版本号被锁定在了webpack:5.0.0。瞬间有给自己两巴掌的冲动(还好我忍住了)。
既然找到原因了,那就删除webpack-lock.json(注意:如果是合作项目,要上传到git的,不建议你这么做,毕竟会影响其他人的项目版本,要是崩了,那就得不偿失了)
删除package-lock.json,然后重新安装webpack@4.x和webpack-cli@3.3.0版本,然后重新npm install(因为我删了node_modules,所以重新install),接着npm run dev,果然。。。。。。项目启动成成功。。。
中间在npm run dev 的时候还遇到了
Error: Cannot find module 'webpack-cli/bin/config-yargs'
The 'compilation' argument must be an instance of Compilation
也是因为webpack,webpack-cli的版本号和webpack-dev-server的版本对应不上的原因,解决方法同上
转载:https://blog.csdn.net/weixin_43861299/article/details/109842178