2015年6月ES2015也就是ES6正式发布。这相比于2009年发布的ES5有了重大的改变,ES6提供了很多新特性。但是有一个问题,那就是兼容性。在众多浏览器当中,兼容性参差不齐,其中兼容性最好的要数谷歌(Chrome)和火狐(Firefox)了。 这时候要是想用ES6的新特性又要保证兼容性就得借助别的工具来实现。比较通用的工具方案有 babel,jsx,traceur,es6-shim 等。现在介绍一下如何利用babel将ES6转为ES5。
创建一个项目
项目里建立src和dist两个目录,在src目录下创建index.js,内容如下:
let b = 1;
console.log(b)
const name = '张三'
console.log(name)
初始化项目
npm init
执行完以上命令后,根目录下会生成package.json。
安装babel工具
npm install -g babel-cli
npm install --save-dev babel-preset-es2015 babel-cli
执行完上面两句指令后,package.json文件里便多了devDependencies选项,项目根目录多了一个node_modules和package-lock.json。
创建babel配置文件
在项目根目录下创建名为.babelrc的文件。如果是在Windows系统里文件名要输入 .babelrc.(前后两个点),否则会报错。.babelrc文件内容如下:
{
"presets": [
"es2015"
],
"plugins": []
}
这个时候可以开始转换了,输入以下指令:
babel src --out-dir dist
或者输入实时监控指令
babel src --watch --out-dir dist
转化完后,再看一下dis目录,发现已经将src目录下的ES6代码转为ES5了。
接下来可以简化一下转化指令,在package.json里添加编译别名:
"build": "babel src --out-dir dist"
之后只要执行下面这指令便可以了:
npm run build