在工程化的角度上,需要秉承以下理念:
编译是 Babel 的核心目标
自身的实现基于编译原理,深入AST(抽象语法树)来生成目标代码
@babel/cli
是Babel提供的命令行
var babel = require("@babel/core")babel.transform(code, options, function(err, result) {result; // {code, map, ast}})
@babel/core
是Babel实现转换的核心
作为 @babel/cli 的关键依赖,@babel/core提供了基础的编译能力
@babel/standalone
@babel/preset-env
是直接暴露给开发者在业务中运用的包能力
@babel/polyfill
是core-js和regenerator-runtime两个包的结合
@babel/plugin-transform-runtime