
《Babel 入门教程》是阮一峰在其网络日志(2016年1月25日)上发布的一篇技术文章,节选自其新书《ES6 标准入门(第二版)》第一章。Babel 是一个广泛使用的转码器,可以将 ES6 代码转为 ES5 代码,从而在现有 JavaScript 环境执行。这意味着开发者可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。例如,箭头函数等尚未广泛支持的特性,经 Babel 转码为普通函数后就能正常运行。
本文详细介绍了 Babel 生态中多个工具与模块的使用方法:
.babelrc:Babel 的配置文件,存放于项目根目录,用于设置转码规则(presets)和插件(plugins)。官方提供 es2015、react、stage-0~3 等规则集供安装选用。babel-cli:用于命令行转码,支持输出到标准输出、写入文件、整个目录转码及生成 source map。建议安装在项目内并通过 npm run build 调用,避免全局依赖。babel-node:随 babel-cli 安装的命令,提供支持 ES6 的 REPL 环境,可直接运行 ES6 脚本,也可在项目中替代 node 执行脚本。babel-register:改写 require 命令,为加载的 .js、.jsx、.es、.es6 文件自动先转码;只对 require 加载的文件生效,且因实时转码只适合开发环境。babel-core:供代码调用 Babel API 进行转码,支持字符串、文件(异步/同步)、AST 等多种转码方式。babel-polyfill:由于 Babel 默认只转换句法而不转换新 API(如 Promise、Set 等),该模块为当前环境提供垫片,需在脚本头部引入。babel-core 获取 browser.js,或使用 babel-standalone 插入网页;也可配合 Browserify 等工具打包。网页实时转码会影响性能,生产环境应加载已转码脚本。babel-eslint 做静态检查)和 Mocha(测试框架通过 babel-core/register 转码测试脚本)的集成方式。