babel简介
Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。这意味着,你可以用ES6的方式编写程序,又不用担心现有环境是否支持。Babel是所有ES6转换编译器中与ES6规范兼容度最高的,甚至超过了谷歌创建已久的Traceur编译器。Babel允许开发者使用ES6的所有新特性,而且不会影响与老版本浏览器的兼容性。
备注:可以说,有了Babel这一类转码工具,一些JS的最新的标准或特性,在没有被大多的浏览器厂商支持的情况下,让前端开发者提前使用上了这些新特性。
举例来说:
1 | // 转码前 |
备注:上面的原始代码用了箭头函数,Babel将其转为普通函数,就能在不支持箭头函数的JavaScript环境执行了。
babel的使用方法
Babel有三种使用方式,如下:
(1)直接安装babel的命令行工具
执行命令npm install babel-cli -g
或npm install babel-cli
即可安装babel的命令行工具。然后执行babel test.js
就可以将我们编写的非原生JS代码转换成原生的JS代码啦,前提是要配置好.babelrc
啦。
(2)结合webpack的babel-loader进行转码
(3)在浏览器中直接转码
在浏览器中转码时,需要在HTML中做如下配置:
1 | <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.4.4/babel.min.js"></script> |
备注:从Babel 6.0开始,不再直接提供浏览器版本,而是要用构建工具构建出来。即需要使用第一种方式来使用Babel,因为直接在浏览器中转码,会增加浏览器的性能损耗。
babel工具在项目中基础配置
当需要在服务端使用babel对ES6进行转码时,我们首先需要配置babel的转码规则和插件。babel有两种配置方法,一种是配置.babelrc;另一种是在package.json中增加babel的配置。二者选择其一即可。
(1).babelrc文件的配置
在项目的根目录中增加一个.babelrc文件,文件内容的基本格式如下:
1 | { |
presets字段设定转码规则,也就是从什么语法转换成浏览器能直接支持的原生JS,官方提供以下的规则集:
1 | # ES2015转码规则 |
假设我们的JS代码中有ES2015、JSX的语法,那么我们需要在.babelrc文件中增加如下内容:
1 | { |
(2)在package.json中增加babel的配置
在package.json中增加babel的配置,需要在package.json中增加一个babel字段,形式如下:
1 | { |
babel的项目实践
待补充。。
学习资料参考于:
http://www.infoq.com/cn/news/2015/05/ES6-TypeScript
http://www.ruanyifeng.com/blog/2016/01/babel.html