ECMAScript 6是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。
ES6的目标,是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。
在webstorm写下了这段代码,体验一下ES6语法的便利,但是一大堆报错
相信每一只程序猴都不想在这样的环境下编码,反正本猴不想
1 语法支持设置
Preferences > Languages & Frameworks > JavaScript
这里只要配置ECMAScript版本即可
配置之后
2 自动转码为ES5
file watcher + babel(ES6转码器)
你可能希望你写的代码有更好的兼容性,但目前的ES6肯定不是所有浏览器都支持的,所以我们要用到ES6转码器。
Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在浏览器或其他环境执行。这意味着,你可以用ES6的方式编写程序,又不用担心现有环境是否支持。
而且你还希望每次修改代码时能自动转码,所以还要用到webstorm的file watcher(当然还有其他解决方案)
npm install -g babel
- Preferences > Tools > File watchers
- 点击“+”按钮
File Type:配置该监听器监听的文件类型,可以在Preferences > Editor > File types中配置
Scope:配置该监听器的监听范围,可自定义新的范围,也可以使用Preferences > Appearance & Behavior > Scopes
Program:babel的安装位置
Arguments:命令执行参数,参见Babel CLI
Working directory:babel命令执行的位置,默认为文件所在目录
这样对文件做修改会随时生成编译成ES5的文件以及sourceMap文件
- 但是还没搞定!现在只是搞定了自动转换的功能,系统默认把ES6 compile成了ES6..(你应该会发现compile出来的东西跟原来的一样..Generator函数并没有被转换成ES5的格式)
所以我们需要安装Babel的preset以正确识别ES6代码;
- 和刚才一样,在npm安装babel的ES6的preset
在webstorm中打开命令行
输入以下命令
npm install --save-dev babel-preset-es2015
- 在根目录下新建一个.babelrc文件(就是babel在当前项目的配置文件),写上
{
"presets": [
"es2015"
]
}
- OK搞定!保存再回去看一下test-compiled.js 应该就变成这个样子啦,现在你在test.js里直接写ES6代码,IDE都会自动compile成ES5的代码在这里啦~
- 注意:想直接用Node.js运行ES6代码还是有些问题..因为这段代码用的ES6的解构赋值Node.js还未完全支持,需要在运行的时候加入一些tags(以开启Node.js的相关试验特性),具体可以参考Node.js官网对ES6的说明:ECMAScript 2015 (ES6)
参考文章: