uni-app 选择vue3发行到H5 引入.wxs文件的地方打包报错
uni-app 选择vue3发行到H5 引入.wxs文件的地方打包报错
示例代码:
<script src="./index.wxs" module="handler" lang="wxs"></script>
操作步骤:
- 选择vue3 发行 H5时报错,排查到问题是因为引入了wxs文件
- 报错信息:… Illegal tag name. Use ‘<’ to print ‘<’. …
- 使用官方Hello项目发行也会出现此错误。
预期结果:
- 引入wxs文件打包不出错
实际结果:
- 打包出错,无法打包
bug描述:
- 选择vue3 发行 H5时报错,排查到问题是因为引入了wxs文件
- 报错信息:… Illegal tag name. Use ‘<’ to print ‘<’. …
- 使用官方Hello项目发行也会出现此错误。
更多关于uni-app 选择vue3发行到H5 引入.wxs文件的地方打包报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
wxs文件中有代码时会报错
更多关于uni-app 选择vue3发行到H5 引入.wxs文件的地方打包报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
可以更新到正式版,HBuilderX 3.3.3
3.3.5也报这个错
回复 1***@163.com: 发测试工程
在 uni-app 的 Vue 3 版本中,.wxs 文件是专为微信小程序设计的模块系统,不支持在 H5 平台使用。当你尝试在 H5 平台引入 .wxs 文件时,Vue 3 的编译器无法识别这种语法,导致打包错误。
错误信息 Illegal tag name. Use '<' to print '<'. 表明编译器将 <script src="./index.wxs" module="handler" lang="wxs"></script> 中的内容误解为 Vue 模板中的非法标签。这是因为在 Vue 3 的 H5 编译环境中,这种写法不被支持。
解决方案:
-
条件编译:使用 uni-app 的条件编译语法,仅在微信小程序平台引入
.wxs文件。修改代码如下:<!-- #ifdef MP-WEIXIN --> <script src="./index.wxs" module="handler" lang="wxs"></script> <!-- #endif -->这样,在 H5 平台打包时会忽略这段代码,避免错误。
-
替代实现:如果需要在 H5 平台实现类似
.wxs的功能(如数据处理),建议使用 Vue 3 的computed计算属性或普通 JavaScript 函数。例如,将.wxs中的逻辑移入 Vue 组件的<script setup>中:// 替代 handler 模块的功能 const handler = { // 在这里实现原有 .wxs 中的函数 };

