-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
支持 Vue SFC #7
Comments
目前 Vue Mini 本身是一个纯运行时的库,远期目标是计划支持 .vue 单文件的。将来支持 .vue 单文件应该会用一个与核心库分离的 compiler 来实现,但目前还有具体实施计划(没时间 😅 )。 PS: 现在有一个脚手架了 https://github.com/vue-mini/template |
这段时间写了一个配合 |
|
厉害啊!我想想怎么把这个链接到 readme 和文档中。 |
esbuild 不支持 manual chunk, 打包逻辑和 vue 编译还有很多不成熟的地方。 |
我把这个 Issue Reopen 了,希望我们将来能真正支持 Vue SFC。 |
刚体验了,vue-mini的纯js运行时,目前看来效用不大,pages里仍然要手写三个文件 |
现有的脚手架还是不适合上生产,基于 我做过非常丑陋的一个半成品实现(一个 webpack-loader) 也许未来通过 https://github.com/unjs/unplugin 体系能搞出简单通用的编译器。 |
我并不认同,我始终认为 webpack/vite 与小程序并不搭配。我认为 create-vue-mini 现在的编译方式是最适合小程序的。你可以说 create-vue-mini 还比较简陋缺乏很多功能,但武断的说它不适合上生产,我觉得并不合适。 SFC 的支持是另一个话题,这里可以展开说一下。支持 SFC 本身并不难,但是 SFC 并不只是可以把 Vue 文件编译为 wxml/wxss/js/json 文件这么简单,SFC 还需要一整套工具链。你需要 IDE 的语法高亮、引用跳转以及类型检查吧,你需要 vue-tsc 这样的命令行类型检查工具吧,你还需要 eslint stylelint prettier 都能如期工作吧。没有这些配套 SFC 不仅不能带来更优的 DX,反而不如现在写多个文件的 DX。所以支持 SFC 是一项庞大的工程。当然我也在思考更小工作量的实现,比如语法完全兼容 Vue SFC,以期望复用 Vue 的工具链,以及渐进的支持路径,比如还是先写多个文件,但是模板文件支持 Vue SFC 模板的语法,这样不会破坏现有的 DX,但可以带来增量的 DX 改进等等。 |
抱歉,因为 vue mini 主张的是轻量,渐进的实现,模板绑定用的也是原生能力。所以我下意识的认为,作者说的 SFC 的实现也只要最小规模的功能,最大限度的借用 vue 生态即可,因为完整的 SFC 支持工程量确实太大。 实际上在我个人的项目中,我也是只将 vue 文件拆解,并用 ast 将 vue template 语法转换成了 wxml 语法(仅限功能重叠的部分)而已,再用 ast 把 js 也转换了一下。其他事就交给 webpack 了。 在这个过程中,语法高亮/eslint/stylelint/prettier/其他等等 都是如期工作的,因为输入的源文件它就是个语法受限的 vue 文件,直接复用到 H5 项目都是没问题的。 仅就个人而言:我认为完整对齐 vue 的功能就是不可能的,工作量太大了,边缘生态更是没必要自己做,能用 vue 的生态最好。 |
我过去用过好几个 vue 转小程序的开源项目,除了 taro 全都弃坑了,taro 目前也有很多问题。 |
试试mpx呢?https://mpxjs.cn/ |
以后会不会支持.vue单文件呢
The text was updated successfully, but these errors were encountered: