如何使用Babel将ES6转码为ES5

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Babel将ES6转码为ES5相关的知识,希望对你有一定的参考价值。

Babel是一个转换编译器,它能将ES6转换成可以在浏览器中运行的代码。Babel由来自澳大利亚的开发者SebastianMcKenzie创建。他的目标是使Babel可以处理ES6的所有新语法,并为它内置了ReactJSX扩展及Flow类型注解支持。据codemix创始人CharlesP 参考技术A 密码多少

JavaScript 学习笔记-- ES6学习介绍以及Babel的使用

本文摘自阮一峰老师的《ECMAScript 6入门》,原文地址:http://es6.ruanyifeng.com/#docs/intro

 

ECMAScript 6 是一个泛指,含义是5.1版本后的JavaScript的下一代标准,涵盖了ES2015, ES2016, ES2017等。

Babel转码器是一个广泛使用的ES6转码器,可以将ES6转码为ES5。

 

配置文件:.babelrc

配置文件基本格式:

// .babelrc
{ “presets”: [],
"plugins": [], }

使用babel先要安装规则集,安装完后加入到配置文件中。官方的规则集如下:

# ES2015转码规则 
$ npm install --save-dev babel-preset-es2015 

# react转码规则 
 $ npm install --save-dev babel-preset-react 

# ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个 
$ npm install --save-dev babel-preset-stage-0 
 $ npm install --save-dev babel-preset-stage-1 
 $ npm install --save-dev babel-preset-stage-2 
 $ npm install --save-dev babel-preset-stage-3
// .babelrc
{
"presets": [ "es2015", "react", "stage-2" ], "plugins": [] }

 

babel-ci 模块

babel-ci模块是在命令行中使用babel, 使用babel命令可以直接对文件进行转码,对于项目来说,可以直接将其写在package.json中,然后将命令放在scripts 中。

安装命令如下:

$ npm install --global-cli

 

基本用法如下:

# 转码结果输出到标准输出
$ babel example.js

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

# 整个目录转码
# --out-dir 或 -d 参数指定输出目录
$ babel src --out-dir lib
# 或者
$ babel src -d lib

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

在项目中装载和使用babel-cli:

# 安装
$ npm install --save-dev babel-cli
// package.json
{
  // ...
  "devDependencies": {
    "babel-cli": "^6.0.0"
  },
  "scripts": {
    "build": "babel src -d lib"
  },
}

 

babel-register 模块

babel-register模块改写require命令,为它加上一个钩子,此后,每当使用require加载.js, .jsx, 和.es6后缀名的文件,就会先用Babel进行转码:

$ npm install --save-dev babel-register
require("babel-register");
require("./index.js");

注意: babel-register只会对require命令加载的文件转码,而不会对当前文件转码。

 

Babel可以用于浏览器环境,不过从6.0版本开始,不再直接提供浏览器版本,而是要用构建工具构建出来。

babel 和browserify 配合使用:

{   
  "browserify": 
  {     
    "transform": [["babelify", { "presets": ["es2015"] }]]   
  } 
}

 



以上是关于如何使用Babel将ES6转码为ES5的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Babel将ES6转码为ES5?

JavaScript 学习笔记-- ES6学习介绍以及Babel的使用

WebStorm ES6 语法支持设置

Babel 转码器 § es6转换es5

常见的ES6转码(编译)工具——Babel转码器Traceur转码器

1.Babel转码器