前端问题
大约 3 分钟
前端问题
暂时不要升级的依赖包
依赖包 | 当前使用版本 | 最新版本 | 说明 |
---|---|---|---|
compression-webpack-plugin | 6.1.1 | > 9.2.0 | 目前不要升级该包,该包依赖高版本Webpack,在当前版本不兼容,待升级至Vue3 才可以考虑升级。 |
css-loader | 5.2.7 | > 6.3.0 | 目前不要升级该包,编译时会抛错误 |
rollup-plugin-vue | 5.1.9 | > 6.0.0 | 目前不要升级该包,该包依赖高版本组件,在当前版本不兼容,待升级至Vue3 才可以考虑升级。长时间未更新,升级至 Vue3 可能就不再需要使用该组件 |
sass | 1.32.8 | > 1.47.0 | 目前不要升级该包,会出现很多样式除法过期的提示,需要等到Vuetify大版本升级后再考虑 |
sass-loader | 10.1.1 | > 12.4.0 | 目前不要升级该包,最新版本很多包还有没有适配 |
typescript | 4.2.3 | > 4.5.4 | 目前不要升级该包,系统当前使用typescript-ioc组件进行服务注入,该组件已不再维护,在typescript >4.2.3版本中无法正确注入。 待升级至 Vue3 以后,使用composition api,就不再使用ioc注入模式 |
vue-chartist | 2.3.1 | = 3.0.0 | 目前不要升级该包,基于Vue3的版本,当前版本不兼容 |
webpack | 4.46.0 | > 5.40.0 | 目前不要升级该包,compression-webpack-plugin会抛错误 |
vuex-module-decorators | 1.0.1 | = 2.0.0 | 目前不要升级该包,基于Vue3的版本,当前版本不兼容 |
问题一:升级依赖包时出错
使用yarn upgrade-interactive --latest命令升级依赖包的时候,特别是@hecate/form-service 中,有依赖包可以升级时(目测是由于使用了 Nuxt),经常会出现下面的错误。
Invariant Violation: expected workspace package to exist for "autoprefixer"
at invariant (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:2314:15)
at _loop2 (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:94537:9)
at PackageHoister.init (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:94596:19)
at PackageLinker.getFlatHoistedTree (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:48744:20)
at PackageLinker.<anonymous> (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:48755:27)
at Generator.next (<anonymous>)
at step (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:310:30)
at D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:328:14
at new Promise (<anonymous>)
at new F (D:\LocalCaches\yarn\global\node_modules\yarn\lib\cli.js:5301:28)
这个问题是 yarn 本身的 Bug,虽然 yarn 已经升级到了 1.22.10,但是一会好一会不好的。
(1)解决办法一
在工程中将 yarn 的版本,降到 1.19.XX。这种方法,只对本工程有效,这样其它工程仍旧可以使用最新版的 yarn,避免了全局安装低版本 yarn 的问题
yarn policies set-version 1.19.XX
// .yarn 目录生成后,执行
yarn install
这个命令会在工程中生成一个.yarn 目录以及一个.yarnrc 文件,并在其中指定 yarn 版本。
(2)解决办法二
这种办法土一点,但是可以不用去理会 yarn 的不管问题。
// 1,先查询看看那些包可以升级
yarn upgrade-interactive --latest
// 2,到指定的包的package.json中,手工修改版本号
// 3,清除组件包的依赖
lerna clean
// 4,重新关联依赖
lerna bootstrap
或
yarn install
问题二:运行命令是出现禁止脚本运行的错误
解决方法:打开 PowerShell(在小娜里搜就行),输入:
set-executionpolicy remotesigned
之后选择 Y,问题就解决了。