Babel babel-core
var babel = require("babel-core"); import { transform } from 'babel-core'; import * as babel from 'babel-core';
所有的转译都将使用本地配置文件( .babelrc 或者 package.json )。 可以通过查看 options 禁用它。
babel.transform(code: string, options?: Object)
将传入的 code 进行转换。返回值为一个对象,参数分别为生成的代码,source map 以及 AST 。
babel.transform(code, options) // => { code, map, ast }
示例
var result = babel.transform("code();", options); result.code; result.map; result.ast;
babel.transformFile(filename: string, options?: Object, callback: Function)
babel.transformFile(filename, options, callback)
示例
babel.transformFile("filename.js", options, function (err, result) { result; // => { code, map, ast } });
babel.transformFileSync(filename: string, options?: Object)
babel.transformFile 的同步版本。返回值为 filename 文件中转译后的代码。
babel.transformFileSync(filename, options) // => { code, map, ast }
示例
babel.transformFileSync("filename.js", options).code;
babel.transformFromAst(ast: Object, code?: string, options?: Object)
const code = "if (true) return;"; const ast = babylon.parse(code, { allowReturnOutsidefunction: true }); const { code, map, ast } = babel.transformFromAst(ast, code, options);
选项
Babel CLI 你可以在 Babel CLI 中使用这些选项,形式如下:babel --name=value
可以使用的选项列表如下:
可选参数 |
默认值 |
描述 |
@H_404_65@
---|---|---|
ast |
true |
在返回值对象中包含 AST |
@H_404_65@
auxiliaryCommentAfter |
null |
@H_404_65@ |
auxiliaryCommentBefore |
null |
@H_404_65@ |
babelrc |
true |
指定是否使用 .babelrc 和 babelignore 文件。使用 CLI 工具时不能使用该选项,请使用 --no-babelrc 代替。 |
@H_404_65@
code |
true |
@H_404_65@ |
comments |
true |
@H_404_65@ |
compact |
"auto" |
不要包含多余的空格符和换行符。设置为 "auto" 时,当输入大小 > 500KB 时,compact 会被设置为 true。 |
@H_404_65@
env |
{} |
这是表示不同环境的键的对象。例如,当环境变量 BABEL_ENV 设置为 "production" 时,可以像这样设置 { env: { production: { /* specific options */ } } }。如果 BABEL_ENV 未设置,那么 NODE_ENV 将被启用,如果 NODE_ENV 也未被设置,则默认为 "development" 环境。 |
@H_404_65@
extends |
null |
扩展 .babelrc 文件的路径 |
@H_404_65@
filename |
"unkNown" |
@H_404_65@ |
filenameRelative |
(filename) |
相对于 sourceRoot 的文件名。 |
@H_404_65@
generatorOpts |
{} |
@H_404_65@ |
getModuleId |
null |
指定一个自定义回调来生成模块 ID 。调用方式为 getModuleId(moduleName)。如果返回值为 falsy ,则说明生成的模块 ID 被使用。 |
@H_404_65@
highlightCode |
true |
@H_404_65@ |
ignore |
null |
与 only 选项相对。如果只指定 only,则 ignore 则被忽略。 |
@H_404_65@
inputSourceMap |
null |
输出的 source map 将基于该 source map 对象。 |
@H_404_65@
minified |
false |
@H_404_65@ |
moduleId |
null |
@H_404_65@ |
moduleIds |
false |
@H_404_65@ |
moduleRoot |
(sourceRoot) |
@H_404_65@ |
only |
null |
可填入一个 glob,正则表达式或者包含前者的混合数组,只编译匹配到的路径。也可以是包含明确匹配路径的数组。在尝试编译非匹配的文件时,它将原样返回。 |
@H_404_65@
parserOpts |
{} |
需要传递给 babel 解析器,babylon 的选项对象 |
@H_404_65@
plugins |
[] |
需要加载和使用的插件列表。 |
@H_404_65@
presets |
[] |
需要加载和使用的 presets (一组插件) 列表。 |
@H_404_65@
retainLines |
false |
保留行号。这将导致代码变得很古怪,但对于不能使用 source map 的场景来说很方便。(注意: 这不会对列进行保留) |
@H_404_65@
resolveModuleSource |
null |
解析模块入口,例如 import "SOURCE"; 引入自定义值。具体调用为 resolveModuleSource(source, filename) 。 |
@H_404_65@
shouldPrintComment |
null |
一个可选的回调,控制是否需要输出注释。具体调用为 shouldPrintComment(commentContents) 。 注意: 该选项使用时会覆盖 comment 选项。 |
@H_404_65@
sourceFileName |
(filenameRelative) |
在返回的 source map 上设置 sources[0]。 |
@H_404_65@
sourceMaps |
false |
如果为 true ,添加一个 map 属性在输出的返回值中。如果设置为 "inline" ,带有 sourceMappingURL 指令的注释被添加到返回代码的底部。如果设置为 "both" ,则会返回 map 属性并追加 source map 注释。它不会自己生成 sourcemap 文件! 要想让 CLI 生成 sourcemap ,你必须给它传递 --source-maps 选项。 |
@H_404_65@
sourceMapTarget |
(filenameRelative) |
在返回 souremap 时设置 file。 |
@H_404_65@
sourceRoot |
(moduleRoot) |
所有 source 都是相对于 root 的。 |
@H_404_65@
sourceType |
"module" |
设置 babel 解析代码的模式。可以设置为 "script" 或 "module" 。 |
@H_404_65@
wrapPluginVisitorMethod |
null |
可用于包装访问者模式的可选回调。注意: 这对于自我检查这样的事是有必要的,并且不需要实现任何方法。具体调用为 wrapPluginVisitorMethod(pluginAlias, visitorType, callback) 。 |
@H_404_65@