背景
uniapp项目,什么都没有改动,突然项目的各个分支开始爆出上述错误。具体爆出错误的依赖包为
@dcloudio/vue-cli-plugin-uni
解决过程
-
首先第一个考虑的是@dcloudio/vue-cli-plugin-uni是不是有过升级导致内部代码出现错误,对比了下运行正常和错误的package-lock.json,发现@dcloudio/vue-cli-plugin-uni版本,发现是一致的,这就非常奇怪了。
-
在谷歌上找了下问题,发现了github上有错误issue,地址如下
https://github.com/dcloudio/uni-app/issues/2987
按照他的配置试了下还是不行。 -
果断删除所有uniapp的相关依赖包,下载最新的,我目前为^2.0.2-3080720230703001版本,
"^2.0.2-3080720230703001", "@dcloudio/uni-h5": "^2.0.2-3080720230703001", "@dcloudio/uni-helper-json": "*", "@dcloudio/uni-mp-360": "^2.0.2-3080720230703001", "@dcloudio/uni-mp-alipay": "^2.0.2-3080720230703001", "@dcloudio/uni-mp-baidu": "^2.0.2-3080720230703001", "@dcloudio/uni-mp-qq": "^2.0.2-3080720230703001", "@dcloudio/uni-mp-toutiao": "^2.0.2-3080720230703001", "@dcloudio/uni-mp-weixin": "^2.0.2-3080720230703001", "@dcloudio/uni-quickapp-webview": "^2.0.2-3080720230703001", "@dcloudio/uni-stat": "^2.0.2-3080720230703001", } devDependencies: { "@dcloudio/uni-automator": "^2.0.2-3080720230703001", "@dcloudio/uni-cli-i18n": "^2.0.2-3080720230703001", "@dcloudio/uni-cli-shared": "^2.0.2-3080720230703001", "@dcloudio/uni-i18n": "^2.0.2-3080720230703001", "@dcloudio/uni-migration": "^2.0.2-3080720230703001", "@dcloudio/uni-template-compiler": "^2.0.2-3080720230703001", "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.2-3080720230703001", "@dcloudio/vue-cli-plugin-uni": "^2.0.2-3080720230703001", "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.2-3080720230703001", "@dcloudio/webpack-uni-mp-loader": "^2.0.2-3080720230703001", "@dcloudio/webpack-uni-pages-loader": "^2.0.2-3080720230703001", }
错误变了,变成缺少"semver"和”@dcloudio/uni-i18n“包,继续下载就好了。
-
下载上述包会编译成功,但是postcss会提示需要8.0.0版本,千万不要升级postcss,uniapp内部有可能会把postcss升级到8.0.0,我们需要在外层锁定版本到8以下。
在项目里面
npm i postcss@7
项目可以运行成功了
总结
问题:uniapp的依赖包出现了问题,需要升级
解决办法:升级uniapp依赖包,下载"semver"和”@dcloudio/uni-i18n“两个包,本地锁定postcss为7版本,就解决了。