We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关联issue
在build.json中增加字段envOptions, 用于修改此处@babel/preset-env插件的参数 简单实现:
build.json
envOptions
@babel/preset-env
{ "envOptions": { "targets": { "chrome": "90" } } }
[[require('@babel/preset-env'), { exclude: ['@babel/plugin-transform-regenerator'], ...envOptions }]]
关键目的在于抽离Babel的helper函数。而这个功能目前微信开发者工具已经具备,可参考微信Bebel转译说明 , 经过实验发现,无论传给微信开发者工具的代码是否经过es6转译es5,开发者工具都会自动注入完整的helper函数。因此在rax端解决helper函数多次注入问题并不是最优解,原因是这样至少都会有一次的重复注入。合理的做法应该是让开发者通过配置,选择性关闭部分es6转译es5功能,使rax端生成的代码不含helper函数,把转译任务交给开发者工具。
为什么强调选择性关闭? 微信小程序并没有完全兼容es6+语法,因此对部分较新的语法进行转译是有必要的。需要转译到什么程度,开发者可以通过配置envOptions.targets字段值去解决。
envOptions.targets
新增build.json字段需要修改build-plugin-component这个插件, 不了解修改这个插件代码需要在哪里提pr。
build-plugin-component
The text was updated successfully, but these errors were encountered:
@ChrisCindy 麻烦看一下这样处理是否会对其他工程造成影响,有明确的方案后我这边会提交一个pr
Sorry, something went wrong.
No branches or pull requests
关联issue
解决方案
在
build.json
中增加字段envOptions
, 用于修改此处@babel/preset-env
插件的参数简单实现:
build.json
output.js
原因说明
关键目的在于抽离Babel的helper函数。而这个功能目前微信开发者工具已经具备,可参考微信Bebel转译说明 ,
经过实验发现,无论传给微信开发者工具的代码是否经过es6转译es5,开发者工具都会自动注入完整的helper函数。因此在rax端解决helper函数多次注入问题并不是最优解,原因是这样至少都会有一次的重复注入。合理的做法应该是让开发者通过配置,选择性关闭部分es6转译es5功能,使rax端生成的代码不含helper函数,把转译任务交给开发者工具。
为什么强调选择性关闭?
微信小程序并没有完全兼容es6+语法,因此对部分较新的语法进行转译是有必要的。需要转译到什么程度,开发者可以通过配置
envOptions.targets
字段值去解决。目前遇到的问题
新增
build.json
字段需要修改build-plugin-component
这个插件, 不了解修改这个插件代码需要在哪里提pr。The text was updated successfully, but these errors were encountered: