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 真的很奇怪。
这是我看到的一些建议,以及它们的问题。
https://github.com/babel/ruby-babel-transpiler
https://www.rubydoc.info/gems/uglifier
https://github.com/fnando/babel-schmooze-sprockets
.default()所有导入。https://nandovieira.com/using-es2015-with-asset-pipeline-on-ruby-on-rails
如何在 ruby on rails 应用程序中使用 ES6 (ES2015)?
https://github.com/babel/minify
| 归档时间: |
|
| 查看次数: |
552 次 |
| 最近记录: |