JavaScript CoffeeScript or ES2015?

hegwin · 2016年10月04日 · 最后由 debugger 回复于 2016年10月09日 · 3689 次阅读

之所以会有 “CoffeeScript or ES2015?” 这个问题,一是项目里 (目前) 无法共存,二是很好奇 coffee 以后会怎么发展,还会被 rails 默认引入么。

  1. Coffee 没法和 ES2015 新语法兼容,也就不能写在同一个文件里

  2. 如果分开不同文件写,dev 模式倒是没问题,等到 production 编译时傻眼了…没法通过编译,于是不得不把 es2015 语法的 js 改回旧版本的语法。

目前觉得 ES2015 写起来还算蛮爽的,直观的感觉就是可以少写好多东西,比如 function 这个字啊,还有对象的 shorthand 写法; 另外就是 this,我觉得它到底指向哪里在 es2015 里清晰多了。

可以把项目中的 Coffee 全部换成 ES6 了。

你已经心有所属了。

为什么没法通过编译?

ES6 大趋势了,写了一份 ES6 的总结「ES6: 快速体验,及实用小贴士」https://github.com/fundon/ES6-QuickStart-and-Tips

Coffee is out!

使用 sprockets-es6,文件以 es6 结尾,和以 coffee 结尾的 CoffeeScript 可以共存。https://github.com/TannerRogalsky/sprockets-es6

#8 楼 @reyesyang

This plugin is primarily experimental and will never reach a stable 1.0. The purpose is to test out BabelJS features on Sprockets 3.x and include it by default in Sprockets 4.x.

readme 中有这么一段话,生产环境还是不要使用的好,实在想用 ES6 的话就稍等等 Sprockets 发布 v4 版本吧,其实关于 ES6 还有另一个比较二的问题那就是文件后缀名,等到 ES7 出来之后后缀名又变成 ES7 了? 😭 之前貌似看到已经有人注意到这个了,就是不知道最后的结果会是怎么样的

#9 楼 @helperhaps #8 楼 @reyesyang 请使用 react-rails 进行 babel 转译,sproketses6 那个如 readme 所言是不保证可用性的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号