【发布时间】:2018-07-02 03:30:35
【问题描述】:
babel-preset-env 允许自动确定所需的 polyfill 和转换,但它如何在运行时检查编译时指定的目标版本是否真的可用。
假设我使用 safari 10 定位
"targets": {
"safari": 10
}
但代码是在旧版本的 safari 上运行的。
babel-preset-env 是如何识别这个的,或者有什么典型的方法来处理这个常见的问题?
【问题讨论】:
babel-preset-env 允许自动确定所需的 polyfill 和转换,但它如何在运行时检查编译时指定的目标版本是否真的可用。
假设我使用 safari 10 定位
"targets": {
"safari": 10
}
但代码是在旧版本的 safari 上运行的。
babel-preset-env 是如何识别这个的,或者有什么典型的方法来处理这个常见的问题?
【问题讨论】:
babel-preset-env 不执行任何运行时检查。它仅启用指定环境所需的转换。您正在有效地设置支持的最低环境,并选择退出支持较低版本所需的任何转换。
例如,如果我的配置中指定的所有浏览器版本都支持 ES2015 类,Babel 不会将类转换为支持 ES5 的形式,因为没有必要这样做!
【讨论】: