Closed screetBloom closed 3 years ago
https://github.com/underfin/vite-plugin-vue2/blob/master/src/template/utils.ts#L54
也遇到了这个问题,希望可以解决,影响很大。 但我认为应该扩展这里而非新增 noProtocol util,这里连 http 字符也是可选即可支持 ://。 cc @screetBloom @underfin
这里我解释一下为什么选择了在 urlToRequire
中增加判断逻辑而不是改 isExternalUrl
vite-plugin-vue2
和 vue-next
的源代码isExternalUrl
的实现是vite-plugin-vue2
和 vue-next
源码保持一致的一个写法vite-plugin-vue2/src/template/utils.ts
和 vue-next/packages/compiler-sfc/src/templateUtils.ts
文件是有点都期望长期作为细粒度的、干净工具函数文件
的noProtocolImgUrlRe
只是针对 vue2 中未写协议头的图片类型,不会导致 externalRE
范围扩大;后续如果在模板解析时对静态资源的 requiretoimport 进行了请求提升的优化,noProtocolImgUrlRe
是可以快速删掉的,不会污染 externalRE
utils.ts
这个文件后续会同步 compiler-sfc/src/templateUtils.ts
这个包的内容,直接修改整个正则不利于后续同步vite-plugin-vue2
的 urlToRequire
分支语句中增加判断是一个更具拓展且影响较小的做法
@underfin
Can u explain why vue3 has no problem in this case with the same externalRE
, plz 🙏
Background
vite-plugin-vue2@1.7.3
will cause an absolute asset reference without protocol header in the template to report an error:Minirepo
Can run
yarn dev
invite-plugin-vue2/playground
I've provided a separate comparison of the default vite project and the vite-plugin-vue2 project
https://github.com/screetBloom/vite-mini-repo/tree/main/packages
Tests