什么是Babelreact
Babel 官方文档: https://babeljs.io/git
Babel 中文文档:https://www.babeljs.cn/es6
咱们知道各个浏览器对JavaScript版本的支持各不相同,不少新的语法没法直接在浏览器中运行,为了解决这个“沟通不顺畅”的问题,因此就有了Babel,Babel主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便可以运行在当前和旧版本的浏览器或其余环境中。有了Babel,咱们能够肆无忌惮的使用ES6+的语法。github
如何配置babel浏览器
// .babelrc文件
{ "presets": [ "es2015", "react", "stage-0" ], "plugins": [] }
这个配置文件是针对babel6的,babel6作了一系列模块化,不像babel5同样把全部的内容都加载。babel
好比要编译es6,咱们须要设置presets包含"es2015",即预先加载es6编译的模块;模块化
若是须要编译jsx,咱们须要设置presets包含"react",即预先加载react编译的模块;spa
presets:预设,即一组预先设定的插件,是babel插件的组合插件
presets与plugins同时存在的执行顺序code
1. plugins运行在presets以前;
2. plugins配置项,按照声明顺序执行,从第一个到最后一个;
3. presets配置项,按照声明逆序执行,从最后一个到第一个(主要是为了确保向后兼容)
stage-x:指处于某一阶段的js语言提案
stage-x的参数列表请参考:https://github.com/babel/babel/blob/master/packages/babel-preset-stage-0/README.md
!!! babel7的一些变化:
babel7中删除了"stage-x"的预设;
建议使用env,代替 es201五、es201六、es2017预设