【发布时间】:2015-10-12 15:06:41
【问题描述】:
当我将 Babel 与运行时选项一起使用时,它会通过导入获得自己的辅助函数,例如 _createClass(而不是仅仅内联打印这些函数)。我对此很满意。
但它也用它自己的 polyfill 替换了任何对 Set、Map 等的使用,这是我不想要的,因为我将浏览器化我的代码并在我已经在必要时对这些特性进行 polyfill 的浏览器中使用它.
有没有办法将 Babel 配置为仅使用运行时来导入内部帮助程序,而不是填充新的 API?
【问题讨论】:
-
您对
Map和Set有什么顾虑?core-js,Babel 的 polyfill,只会在需要时替换它们,它不会总是强制替换。 -
有 babeljs.io/docs/advanced/external-helpers 但如果你在节点 4 上,没有理由不加载 polyfill。不过,我对为什么重复的助手很重要感到困惑,因为如果您不捆绑并将 JS 发送给客户端,它对任何事情的影响都可以忽略不计。
-
是的,但是当我知道不需要将 core-js 加载到内存中时,即使它选择返回本机,它仍然是一种资源浪费。如果我想浏览我的代码并在本地支持 Map 和 Set 的浏览器中使用它(或者我知道我已经在全局范围内填充了它们)怎么办?需要有一种方法可以选择不使用 polyfill,同时还需要有效地不选择不导入帮助器。
-
你是对的。我只以 Node 4 为例,我也关心浏览器。我已经更新了我的问题。
-
外部助手选项看起来很有趣,但并不完全正确。在我的情况下,我不能污染全球环境。我希望它根据需要导入帮助程序,就像没有 polyfill 的运行时选项一样。
标签: babeljs