在 Rails 中使用 ES6 语法和 Javascript 缩小的直接、受支持、稳定的方式是什么?

And*_*ter 5 javascript ruby-on-rails ecmascript-6 webpack babeljs

我正在尝试在 Rails 项目中的 Javascript 文件中使用 ES6 语法。rails-ujs出于性能原因,我还需要缩小 Javascript 文件(我的,以及类似库中包含的文件)。

当我第一次生成项目并在本地运行时,它运行良好。然而,这是因为环境的配置是不同的development对比production。在development配置中,没有缩小。在production配置中,使用 Uglifier 来缩小 Javascript。

一旦我尝试部署到生产环境,Uglifier 和 ExecJS 就开始抛出各种语法错误,例如无法识别const关键字或无法识别箭头函数的>in=>运算符。

在花了几个小时寻找修复之后,我只好简单地禁用 Uglifier,这样我就可以成功部署。但是,现在我的网站正在生产和工作中,我想让这个优化工作。

我熟悉 Babel 和 Webpack,并且我已经在其他项目中使用它们(以及一些自定义脚本)来生成浏览器就绪的 ES5 代码(适用于 Internet Explorer)和浏览器就绪的 ES6 代码(适用于所有其他浏览器)。如果我不使用 Rails,这对我来说解决起来很简单。

但是,由于我使用的是 Rails,我需要弄清楚如何在 Rails Asset Pipeline 的上下文中执行此操作。令人惊讶的是,尽管 ES6 已经有 4 年历史并且被每个现代浏览器支持,但似乎没有任何标准的方法可以做到这一点。Microsoft Edge 在这方面领先于 Rails 真的很奇怪。

这是我看到的一些建议,以及它们的问题。