新功能描述
希望能支持基于 @vue/cli@5 + vue@2 或 vite@2 + vue@2 开发。
现状及问题
- 升级平滑度问题:当前旧项目技术栈均为 @vue/cli@4 + vue@2,支持较为古老的 Android 和 iOS 版本,直接升级到 vite + vue@3 较难,但升级到 @vue/cli@5 + vue@2 或 vite@2 + vue@2 较为 平滑
- 开发体验问题:@vue/cli@4 技术栈相对落后(webpack@4、postcss@7……),@vue/cli@5 和 vite@2 技术栈相对先进(webpack@5、postcss@8 等……),@vue/cli@5 和 vite@2 都可以直接使用 tailwindcss@2、stylelint@14、purgess@4、sass-loader@12 等,带来 更好的开发体验
尝试方案
- 没有找到基于 vite@2 + vue@2 的 uni-app 示例。
- 使用 @vue/cli@5 创建项目。
npm i -g @vue/cli@next
vue create -p dcloudio/uni-preset-vue test
选择 默认模板
,创建完毕后打开项目并运行到微信小程序,可以得到和下面类似的错误提示。应该是插件没有匹配 webpack@5 所致。
$ cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch
请注意运行模式下,因日志输出、sourcemap以及未压缩源码等原因,性能和包体积,均不及发行模式。若要正式发布,请点击发行菜单或使用cli发布命令进行发布
小程序各家浏览器内核及自定义组件实现机制存在差异,可能存在样式布局兼容问题,参考:https://uniapp.dcloud.io/matter?id=mp
ERROR Error: Cannot find module 'webpack/lib/RuleSet'
Require stack:
- /Documents/test/node_modules/@dcloudio/vue-cli-plugin-uni/lib/configure-webpack.js
- /Documents/test/node_modules/@dcloudio/vue-cli-plugin-uni/index.js
- /Documents/test/node_modules/@vue/cli-service/lib/Service.js
- /Documents/test/node_modules/@vue/cli-service/bin/vue-cli-service.js
Error: Cannot find module 'webpack/lib/RuleSet'
Require stack:
- /Documents/test/node_modules/@dcloudio/vue-cli-plugin-uni/lib/configure-webpack.js
- /Documents/test/node_modules/@dcloudio/vue-cli-plugin-uni/index.js
- /Documents/test/node_modules/@vue/cli-service/lib/Service.js
- /Documents/test/node_modules/@vue/cli-service/bin/vue-cli-service.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._resolveFilename (/Documents/test/node_modules/module-alias/index.js:49:29)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/Documents/test/node_modules/@dcloudio/vue-cli-plugin-uni/lib/configure-webpack.js:4:17)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
error Command failed with exit code 1.
1 个回复
DCloud_UNI_GSQ
https://github.com/dcloudio/uni-app/issues/3723