uni build -p mp-weixin在es6:true和es7:true的前提下打包出来的文件仍然是es7语法(比如包含await,包含操作符??)
uni build -p mp-weixin在es6:true和es7:true的前提下打包出来的文件仍然是es7语法(比如包含await,包含操作符??)
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win10 WSL2 | CLI |
示例代码:
比如我的源文件src/lib/field.mjs
里面有代码
await foo();
print(a ?? b)
打包出来的代码仍然是:
await foo();
print(a ?? b)
操作步骤:
使用uni build -p mp-weixin
打包
预期结果:
打包出来的文件不应该包含aync await和??
操作符
实际结果:
包含了
1 回复
这是一个关于uni-app编译配置的问题。根据描述,即使在配置中设置了es6:true
和es7:true
,打包后的微信小程序代码仍然保留了ES7语法特性。
这种情况通常是因为uni-app的编译配置对ES7语法的处理方式导致的。uni-app的编译器默认会保留async/await和空值合并操作符(??)等ES7语法,因为这些语法在小程序环境中是支持的。
解决方案建议:
- 检查manifest.json中的编译配置是否正确:
"mp-weixin": {
"setting": {
"es6": true,
"es7": true
}
}