Meituan-Dianping/mpvue

【建议】支持在 template 将 lang 指定为 mpvue

qiu8310 opened this issue · 7 comments

有个 vscode 插件 minapp 支持小程序的所有标签和属性的补全,可以不用 vue 的 html 补全。

vue

使用 minapp 的用户需要配置 lang 为其它值,才会禁用 vue 的 html 补全,而有用户反馈说在 mpvue 中指定 <template lang="mpvue"> 会报错 qiu8310/minapp#39 。 所以是否可以允许用户自定义配置 lang 属性?

非常感谢为 mpvue 生态提供支持。

mpvue 是基于 vue 的,而 <template lang="mpvue"> 是不符合 vue 语义,它会在 webpack 中自动寻找 mpvue-loader 去解析模版,然而 mpvue-loader 设计的目的是解析是整个 *.vueSFC,而不仅仅是是个模版解析器,具体文档请参考 配置-预处理器-模版 部分。

所以,我建议不要这么做,除非 vue 支持 <template lang="vue"> 我们就考虑支持。
没有什么好的建议,如果可以直接 <template> 不需要 lang 时默认就所有补全的,感觉也还能接受,非常抱歉了。

Vue 是支持 lang=vue-html 的吧,那 mpvue 支持 lang=mpvue-html 吗?

感觉可能使用 lang=vue-wxml 更好些 @anchengjian

vue-html-loader 我尝试了一下,竟然没 run 起来。
没有 vue-wxml-loader 一样的会报错,而且,如果我习惯用 pug 这个模版语法,如何用 minapp 进行补全

原生的 vue 应该是支持的,没有指定 lang 或者指定 lang="vue-html" 都会触发 vetur 的自动补全。

所以希望你可以修改它的 vue-html-loader,改成 vue-wxml-loader,毕竟这不算是 html 吧。

如果 lang="vue-wxml",就不会出现 vetur 的自动补全,这样 minapp 就可以完全起作用了。

pug 插件在开发计划中

@anchengjian 最新 minapp 插件已经支持 pug 语言了

还是希望你的 mpvue 可以指定一个 vetur 不支持 lang 语言,这样就可以完全使用 minapp 的自动补全

hucq commented

再一次感谢 @qiu8310,mpvue 的模板中使用 vuejs 语法,虽然支持写小程序标签,但并不直接写小程序标签的属性,而是在代码构建阶段将vue模板语法的属性规则映射为小程序标签属性,所以自动补全的意义也就不大。因此我们暂时决定不支持。感谢你的建议!