【问题标题】:How to transpile ES6 to ES5 without bloat for production in the browser?如何在浏览器中将 ES6 转换为 ES5 而不会膨胀以进行生产?
【发布时间】:2015-10-11 19:32:52
【问题描述】:

是否有任何可用的转译器配置/选项可以转译 ES6,例如ES5 的 for-of-loops 真的可以在生产网站上使用吗?我发现最好的方法是包含一个额外的 polyfill,这会导致原版 ES5 中相同功能的文件大小至少翻倍。还是这个转译器的想法是只为 nodejs 东西编写未来的 esnext?

【问题讨论】:

  • 许多生产网站都在使用转译的 ES6 - babeljs.io/users
  • 您可能对davidwalsh.name/es6-features-testing 感兴趣 - 只为不支持原生 ES6 的浏览器加载转译代码。
  • 谢谢@joews。他说的很有道理。
  • @joews 是的,他们列出的平台确实可以这样做,但他们甚至可以使用 nodejs 而不是浏览器 js 来做到这一点,这对我来说不是很清楚。
  • 某些 ES6 功能不仅需要转译,还需要 ES6 环境。如果你想要一个 ES6 环境,你必须模仿它。如果你想模拟它,你必须加载一个模拟器。如果您不想加载模拟器,则无法模拟它。 babel polyfill 缩小了 85K。在当今世界,这很小。

标签: node.js ecmascript-6 babeljs transpiler


【解决方案1】:

具体谈谈 Babel,如果您想减少有效负载大小,您可以坚持使用 require polyfilling 不具备的功能,并且您可能对 runtime transformer 用于整合帮助程序代码感兴趣。您可以尝试使用minification.deadCodeEliminationminification.constantFolding 之类的可选转换器来挤出更多内容,但我认为您无论如何都在缩小您的代码,这可能已经做了一些。

【讨论】:

  • 谢谢。这让我对当前的限制有所了解。
  • 感谢您的回答!仅供参考,文档的链接已损坏,我找不到任何好的替代品..
  • 谢谢@Tieme!我想我会更新这些链接以指向 v6 文档。如果你需要 v5 文档,有人会托管它的镜像——在 Babel Slack 上询问。
  • 酷。我已经找到了 v5 示例。我希望你能找到很好的 v6 示例!
猜你喜欢
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-07
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多