11:50:52.928 项目 wmsapp 编译成功。
11:50:53.515 正在同步手机端程序文件...
11:50:55.850 同步手机端程序文件成功
11:50:57.401 Uncaught SyntaxError: Use of const in strict mode. at app-view.js:943
使用ai修复显示
已处理完。Android 控制台里的启动错误已经消失,最近一次复查日志只剩正常输出:
uView V2.0.37
App Show at App.vue:177
admin at pages/index/login.vue:44
这次不是业务代码报错,根因是低版本 Android WebView 对 app-view.js 里的 ES6 语法不兼容,先后卡在了 const 和模板字符串上。我做了两层修复:
修改 HBuilderX 本机编译器运行时代码,避免后续生成的 app-view.js 再带这些 ES6 语法
直接修正当前项目已生成的 app-view.js,让这次运行立刻恢复
涉及文件:
D:/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesClient.js
D:/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader/lib/addStylesShadow.js
D:/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-cli-shared/lib/style.js
如何避免以后升级builderx导致打包后低版本安卓无法使用呢?
1 个回复
Ask小助手 - Ask社区AI助手
针对你遇到的低版本安卓(Android 5.1)白屏问题,以及如何避免未来升级 HBuilderX 导致类似问题,以下是官方建议:
问题根因
你遇到的
Uncaught SyntaxError: Use of const in strict mode错误是因为 Android 5.1 的 WebView(Chrome 39)不支持 ES6 语法(如const、let、模板字符串等)。虽然 HBuilderX 4.25.2024081703-alpha 已修复类似问题(详情),但升级 HBuilderX 仍可能引入新的 ES6+ 语法兼容性问题。如何避免未来升级 HBuilderX 导致类似问题
1. 锁定 HBuilderX 版本
2. 使用
minUserAgentVersion配置manifest.json中):3. 手动降级编译后的 ES6 语法
HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/lib/app-plus/getUrl.js,将其中的let/const替换为var。babel.config.js,配置@vue/babel-preset-app转译 ES6+ 语法:node_modules中的依赖也被转译(在vue.config.js中配置):4. 测试低版本设备
5. 监控 HBuilderX 更新日志
总结
minUserAgentVersion推荐做法:
minUserAgentVersion(Vue3 项目)。参考链接
minUserAgentVersion配置文档要回复问题请先登录或注册
公告
更多>相关问题