怎样学习、测试ES6并且在产品中使用ES6

ES6从去年到今年一直炒的火热,我也去年学习了阮一峰的《ECMAScript 6入门》,ES6的所有特性的理论都是掌握的。但我一直有一些使用上的疑惑。

我写了ES6的代码,但是我从哪去跑代码测试啊!Chrome只支持部分ES6特性,Firefox的firebug也只能输入一个文本运行,ES6的module特性要两个文件来测试啊!

WebStorm号称支持ES6, 按照它的教程配置好了Babel,还是好多好多报错用不了啊,难道就不能原生本地支持么!

难道现在的ES6代码只能用Babel编辑成ES5过后跑么,就没有啥原生支持ES6所有特性的代码环境吗?

阅读 10.2k
10 个回答

我的 Node 版本是 v5.2.x

好像默认就就开启了 Harmony(ES6功能特性代号) 的,不用再使用 --harmony 参数了,但是目前支持得也不全,比如就不支持 import 命令,我的解决办法是,使用 babel-register 注入。这样就能直接跑 ES6 全特性的代码了。

使用 babel-register 要改动的地方并不大,只需要包装一下程序入口。比如你有一个 app.js,那么就新建一个 babel-app.js 文件。babel-app.js 文件中的代码很简单,如下:

    require("babel-register");
    require('./app');

引用一句阮一峰大大在《ECMAScript 6 入门》写的文字:

需要注意的是,babel-register只会对require命令加载的文件转码,而不会对当前文件转码。另外,由于它是实时转码,所以只适合在开发环境使用。

补一句话,大家知道的事:

2015年6月,ECMAScript 6正式通过,成为国际标准。

也就是说标准的正式版才刚出来不久,基础设施完善也是需要时间的,现在还有谁比 chrome-v8 对ES6支持更完备?没有了吧~

如果要编译成es5,我可以安利Typescript吗0.0

TypeScript is a typed superset of JavaScript that compiles to plain JavaScript

TypeScript offers support for the latest and evolving JavaScript features, including those from ECMAScript 2015 and future proposals, like async functions and decorators, to help build robust components.

现在的v8引擎没有支持全部的es6特性
只能babel编译

babeljs+webpack

下最新的nodejs版本在5.0.0以上,启动一个服务器,然后参照node文档es6支持,然后直接使用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏