Babel是什么

Babel 是一个 JavaScript 编译器,可以将ES6代码转为ES5代码,从而在现有环境执行。

安装Babel

babel-cli 是babel解释器的客户端主程序

1
$ npm install -g babel-cli

在项目内运行 babel-cli
初始化项目

1
$ npm init

安装babel-cli

1
npm install --save-dev babel-cli

安装ec2015的转化器,因为ec2015语法并不是所有浏览器都兼容

1
$ npm install --save-dev babel-preset-es2015

安装react转码规则

1
$ npm install --save-dev babel-preset-react

配置文件.babelrc

然后在项目的根目录下新建一个 .babelrc 文件,写入:

1
2
3
{
    "presets": ["es2015"]
  }

notice

所有Babel工具和模块的使用,都必须先写好.babelrc 。

此时babel已安装好,可以使用bable命令对文件进行转码输出了

babel基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 转码结果输出到标准输出
$ babel example.js

# 转码结果写入一个文件
# --out-file 或 -o 参数指定输出文件
$ babel example.js --out-file compiled.js
# 或者
$ babel example.js -o compiled.js

# 整个目录转码,把src文件中所有的文件转码到lib文件夹中对应文件名下,
# --out-dir 或 -d 参数指定输出目录
$ babel src --out-dir lib
# 或者
$ babel src -d lib

# -s 参数生成source map文件
$ babel src -d lib -s

延伸babel在项目中的使用
修改package.json

{
  //...
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "babel src -d lib"
  },
  "devDependencies": {
    "babel-cli": "^6.16.0",
    "babel-preset-es2015": "^6.16.0",
    "babel-preset-react": "^6.16.0"
  }
}

转码的时候,就执行下面的命令。

1
$ npm run build

babel demo

Project-file-name/es2015/index.js

let name = "zhangsan";
alert(name);

我们来利用babel转化一下,命令行执行:

1
$ babel ./es2015/index.js --out-file ./es2015/index-build.js

index-build.js就是转换后的js:

"use strict";

var name = "zhangsan";
alert(name);

浏览器环境browser

通过安装5.x版本的babel-core模块获取。

1
$ npm install babel-core@5

运行上面的命令以后,就可以在当前目录的node_modules/babel-core/子目录里面,找到babel的浏览器版本browser.js(未精简)和browser.min.js(已精简) 然后,将下面的代码插入网页。

1
2
3
4
<script src="node_modules/babel-core/browser.min.js"></script>
<script type="text/babel">
// Your ES6 code
</script>

babel 在线转换ES6 to ES5

https://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=false&presets=es2015%2Creact%2Cstage-2&code=

更多-more