babel-core
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)
给定一个 AST ,将它进行转换。
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
可以使用的选项列表如下:
可选参数 | 默认值 | 描述 |
---|---|---|
ast | true | 在返回值对象中包含 AST |
auxiliaryCommentAfter | null | 在所有非用户编写代码后附加注释。 |
auxiliaryCommentBefore | null | 在所有非用户编写代码前附加注释。 |
babelrc | true | 指定是否使用 .babelrc 和 babelignore 文件。使用 CLI 工具时不能使用该选项,请使用 --no-babelrc 代替。 |
code | true | 启用代码生成选项。 |
comments | true | 在生成的代码中添加注释。 |
compact | "auto" | 不要包含多余的空格符和换行符。设置为 "auto" 时,当输入大小 > 500KB 时,compact 会被设置为 true。 |
env | {} | 这是表示不同环境的键的对象。例如,当环境变量 BABEL_ENV 设置为 "production" 时,可以像这样设置 { env: { production: { /* specific options */ } } }。如果 BABEL_ENV 未设置,那么 NODE_ENV 将被启用,如果 NODE_ENV 也未被设置,则默认为 "development" 环境。 |
extends | null | 扩展 .babelrc 文件的路径 |
filename | "unknown" | 在错误信息是使用的文件名等。 |
filenameRelative | (filename) | 相对于 sourceRoot 的文件名。 |
generatorOpts | {} | 包含要传递给 babel 代码生成器(babel-generator)的选项对象。 |
getModuleId | null | 指定一个自定义回调来生成模块 ID 。调用方式为 getModuleId(moduleName)。如果返回值为 falsy ,则说明生成的模块 ID 被使用。 |
highlightCode | true | ANSI 错误语法高亮显示。 |
ignore | null | 与 only 选项相对。如果只指定 only,则 ignore 则被忽略。 |
inputSourceMap | null | 输出的 source map 将基于该 source map 对象。 |
minified | false | 保证输出最小化(不输出代码块最后一个分号,输出文字为字符串而不是转义字符串,安全情况下 new 后的 () 会被去除) |
moduleId | null | 指定模块 ID 的自定义名称。 |
moduleIds | false | 如果值为 true,为模块添加一个明确的 ID 。默认情况下,所有模块都是匿名的。(不适用于 common 模块) |
moduleRoot | (sourceRoot) | AMD 模块格式化程序的可选前缀,可以被预先添加到模块定义的文件名当中。 |
only | null | 可填入一个 glob,正则表达式或者包含前者的混合数组,只编译匹配到的路径。也可以是包含明确匹配路径的数组。在尝试编译非匹配的文件时,它将原样返回。 |
parserOpts | {} | 需要传递给 babel 解析器,babylon 的选项对象 |
plugins | [] | 需要加载和使用的插件列表。 |
presets | [] | 需要加载和使用的 presets (一组插件) 列表。 |
retainLines | false | 保留行号。这将导致代码变得很古怪,但对于不能使用 source map 的场景来说很方便。(注意: 这不会对列进行保留) |
resolveModuleSource | null | 解析模块入口,例如 import "SOURCE"; 引入自定义值。具体调用为 resolveModuleSource(source, filename) 。 |
shouldPrintComment | null | 一个可选的回调,控制是否需要输出注释。具体调用为 shouldPrintComment(commentContents) 。 注意: 该选项使用时会覆盖 comment 选项。 |
sourceFileName | (filenameRelative) | 在返回的 source map 上设置 sources[0]。 |
sourceMaps | false | 如果为 true ,添加一个 map 属性在输出的返回值中。如果设置为 "inline" ,带有 sourceMappingURL 指令的注释被添加到返回代码的底部。如果设置为 "both" ,则会返回 map 属性并追加 source map 注释。它不会自己生成 sourcemap 文件! 要想让 CLI 生成 sourcemap ,你必须给它传递 --source-maps 选项。 |
sourceMapTarget | (filenameRelative) | 在返回 souremap 时设置 file。 |
sourceRoot | (moduleRoot) | 所有 source 都是相对于 root 的。 |
sourceType | "module" | 设置 babel 解析代码的模式。可以设置为 "script" 或 "module" 。 |
wrapPluginVisitorMethod | null | 可用于包装访问者模式的可选回调。注意: 这对于自我检查这样的事是有必要的,并且不需要实现任何方法。具体调用为 wrapPluginVisitorMethod(pluginAlias, visitorType, callback) 。 |