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:truees7:true,打包后的微信小程序代码仍然保留了ES7语法特性。

这种情况通常是因为uni-app的编译配置对ES7语法的处理方式导致的。uni-app的编译器默认会保留async/await和空值合并操作符(??)等ES7语法,因为这些语法在小程序环境中是支持的。

解决方案建议:

  1. 检查manifest.json中的编译配置是否正确:
"mp-weixin": {
  "setting": {
    "es6": true,
    "es7": true
  }
}
回到顶部