【问题标题】:babel-preset-env runtime version checkbabel-preset-env 运行时版本检查
【发布时间】:2018-07-02 03:30:35
【问题描述】:

babel-preset-env 允许自动确定所需的 polyfill 和转换,但它如何在运行时检查编译时指定的目标版本是否真的可用。

假设我使用 safari 10 定位

"targets": {
   "safari": 10
}

但代码是在旧版本的 safari 上运行的。

babel-preset-env 是如何识别这个的,或者有什么典型的方法来处理这个常见的问题?

【问题讨论】:

    标签: babeljs babel-preset-env


    【解决方案1】:

    babel-preset-env 不执行任何运行时检查。它启用指定环境所需的转换。您正在有效地设置支持的最低环境,并选择退出支持较低版本所需的任何转换。

    例如,如果我的配置中指定的所有浏览器版本都支持 ES2015 类,Babel 不会将类转换为支持 ES5 的形式,因为没有必要这样做!

    【讨论】:

    • 我了解,但是您如何保证运行代码的浏览器满足最低支持环境?
    • @doberkofler:我相信你必须自己添加这些运行时检查,使用类似Modernizr 的东西。不过,这会带来运行时性能成本,这可能是 Babel 不自动执行此操作的原因。
    猜你喜欢
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2019-06-07
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 2021-03-03
    相关资源
    最近更新 更多