@babel/core
var babel = require("@babel/core");
import { transform } from "@babel/core";
import * as babel from "@babel/core";
すべての変換は、ローカルの設定ファイルを使用します。
transform
babel.transform(code: string, options?: Object, callback: Function)
渡されたcode
を変換します。生成されたコード、ソースマップ、およびASTを含むオブジェクトでコールバックを呼び出します。
babel.transform(code, options, function(err, result) {
result; // => { code, map, ast }
});
例
babel.transform("code();", options, function(err, result) {
result.code;
result.map;
result.ast;
});
Babel 6では、このメソッドは同期であり、transformSync
は存在しませんでした。後方互換性のために、コールバックが指定されていない場合、この関数は同期的に動作します。 Babel 7から始めて同期的な動作が必要な場合は、この後方互換性はBabel 8で削除されるため、transformSync
を使用してください。
transformSync
babel.transformSync(code: string, options?: Object)
渡されたcode
を変換します。生成されたコード、ソースマップ、およびASTを含むオブジェクトを返します。
babel.transformSync(code, options); // => { code, map, ast }
例
var result = babel.transformSync("code();", options);
result.code;
result.map;
result.ast;
transformAsync
babel.transformAsync(code: string, options?: Object)
渡されたcode
を変換します。生成されたコード、ソースマップ、およびASTを含むオブジェクトのプロミスを返します。
babel.transformAsync(code, options); // => Promise<{ code, map, ast }>
例
babel.transformAsync("code();", options).then(result => {
result.code;
result.map;
result.ast;
});
transformFile
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 }
});
transformFileSync
babel.transformFileSync(filename: string, options?: Object)
babel.transformFile
の同期バージョン。 filename
の変換された内容を返します。
babel.transformFileSync(filename, options); // => { code, map, ast }
例
babel.transformFileSync("filename.js", options).code;
transformFileAsync
babel.transformFileAsync(filename: string, options?: Object)
babel.transformFile
のプロミスバージョン。 filename
の変換された内容のプロミスを返します。
babel.transformFileAsync(filename, options); // => Promise<{ code, map, ast }>
例
babel.transformFileAsync("filename.js", options).then(result => {
result.code;
});
transformFromAst
babel.transformFromAst(ast: Object, code?: string, options?: Object, callback: Function): FileNode | null
ASTが与えられた場合、それを変換します。
const sourceCode = "if (true) return;";
const parsedAst = babel.parseSync(sourceCode, {
parserOpts: { allowReturnOutsideFunction: true },
});
babel.transformFromAst(parsedAst, sourceCode, options, function(err, result) {
const { code, map, ast } = result;
});
Babel 6では、このメソッドは同期であり、transformFromAstSync
は存在しませんでした。後方互換性のために、コールバックが指定されていない場合、この関数は同期的に動作します。Babel 7から始めて同期的な動作が必要な場合は、この後方互換性はBabel 8で削除されるため、transformFromAstSync
を使用してください。
transformFromAstSync
babel.transformFromAstSync(ast: Object, code?: string, options?: Object)
ASTが与えられた場合、それを変換します。
const sourceCode = "if (true) return;";
const parsedAst = babel.parseSync(sourceCode, {
parserOpts: { allowReturnOutsideFunction: true },
});
const { code, map, ast } = babel.transformFromAstSync(
parsedAst,
sourceCode,
options
);
transformFromAstAsync
babel.transformFromAstAsync(ast: Object, code?: string, options?: Object)
ASTが与えられた場合、それを変換します。
const sourceCode = "if (true) return;";
babel
.parseAsync(sourceCode, { parserOpts: { allowReturnOutsideFunction: true } })
.then(parsedAst => {
return babel.transformFromAstAsync(parsedAst, sourceCode, options);
})
.then(({ code, map, ast }) => {
// ...
});
parse
babel.parse(code: string, options?: Object, callback: Function)
コードが与えられた場合、Babelの標準的な動作を使用して解析します。オプションの構文プラグインが自動的に有効になるように、参照されるプリセットとプラグインがロードされます。
Babel 7の初期ベータ版では、このメソッドは同期であり、`parseSync`は存在しませんでした。後方互換性のために、コールバックが指定されていない場合、この関数は同期的に動作します。Babel 7の安定版から始めて同期的な動作が必要な場合は、この後方互換性はBabel 8で削除されるため、`parseSync`を使用してください。
parseSync
babel.parseSync(code: string, options?: Object)
ASTを返します。
コードが与えられた場合、Babelの標準的な動作を使用して解析します。オプションの構文プラグインが自動的に有効になるように、参照されるプリセットとプラグインがロードされます。
parseAsync
babel.parseAsync(code: string, options?: Object)
ASTのプロミスを返します。
コードが与えられた場合、Babelの標準的な動作を使用して解析します。オプションの構文プラグインが自動的に有効になるように、参照されるプリセットとプラグインがロードされます。
高度なAPI
Babelをラップする多くのシステムは、プラグインとプリセットを自動的に挿入したり、オプションをオーバーライドしたりします。この目標を達成するために、Babelは変換せずに設定の一部をロードするのに役立ついくつかの関数を公開しています。
loadOptions
babel.loadOptions(options?: Object)
Babelのオプションを完全に解決し、以下の条件を満たすオプションオブジェクトを作成します。
opts.plugins
は、Plugin
インスタンスの完全なリストです。opts.presets
は空であり、すべてのプリセットはopts
にフラット化されます。- Babelに安全に渡すことができます。
"babelrc"
などのフィールドはfalse
に設定されているため、Babelへの後続の呼び出しでは設定ファイルの2回目の読み込みは行われません。
Plugin
インスタンスは直接操作することを意図していませんが、呼び出し側は多くの場合、このopts
をJSONにシリアライズして、Babelが受信したオプションを表すキャッシュキーとして使用します。 これのキャッシュは、適切に無効化されることが100%保証されているわけではありませんが、現時点では最善の方法です。
loadPartialConfig
babel.loadPartialConfig(options?: Object): PartialConfig
システムがユーザーの設定を簡単に操作および検証できるように、この関数はプラグインとプリセットを解決し、それ以上処理を進めません。呼び出し側は設定の.options
を取得し、必要に応じて操作し、Babelに 다시 渡すことが想定されています。
この関数は、標準のオプションに加えて、オプションオブジェクトの一部として1つの追加オプションを受け入れます:`showIgnoredFiles`。trueに設定すると、`loadPartialConfig`はファイルが無視された場合に常に結果を返し、`null`は返しません。これは、呼び出し側がこの結果に影響を与えたファイルのリストにアクセスできるようにするために役立ちます(例:ウォッチモードの場合)。呼び出し側は、返された`fileHandling`プロパティに基づいてファイルが無視されたかどうかを判断できます。
babelrc: string | void
- ファイル相対設定ファイルのパス(存在する場合)。babelignore: string | void
-.babelignore
ファイルのパス(存在する場合)。config: string | void
- プロジェクト全体の設定ファイルのパス(存在する場合)。options: ValidatedOptions
- 部分的に解決されたオプション。操作してBabelに 다시 渡すことができます。plugins: Array<ConfigItem>
- 以下を参照してください。presets: Array<ConfigItem>
- 以下を参照してください。- Babelに安全に渡すことができます。
"babelrc"
などのオプションはfalseに設定されているため、Babelへの後続の呼び出しでは設定ファイルの2回目の読み込みは行われません。
hasFilesystemConfig(): boolean
- 解決された設定がファイルシステムから設定を読み込んだかどうかを確認します。- `fileHandling` - これは、呼び出し側がこのファイルで何をすべきかを示すために、`"transpile"`、`"ignored"`、または`"unsupported"`に設定されます。
- `files` - 結果の設定を構築するために読み取られたファイルパスの`Set`。プロジェクト全体の設定ファイル、ローカル設定ファイル、拡張設定ファイル、無視ファイルなどが含まれます。ウォッチモードまたはキャッシュの無効化を実装するのに役立ちます。
ConfigItem
インスタンスは、値をイントロスペクトするためのプロパティを公開しますが、各アイテムは不変として扱う必要があります。変更が必要な場合は、リストからアイテムを削除し、通常のBabel設定値、または`babel.createConfigItem`によって作成された置換アイテムに置き換える必要があります。 `ConfigItem`フィールドの詳細については、その関数を参照してください。
createConfigItem
babel.createConfigItem(value: string | {} | Function | [string | {} | Function, {} | void], { dirname?: string, type?: "preset" | "plugin" }): ConfigItem
ビルドツールが設定アイテムを事前に作成およびキャッシュできるようにします。この関数が特定のプラグインに対して複数回呼び出された場合、Babelはプラグインの関数を複数回呼び出します。挿入するプラグインとプリセットの明確なセットがある場合は、設定アイテムを事前に構築することをお勧めします。
ConfigItem
タイプ
各ConfigItem
は、Babelが知っているすべての情報を公開します。フィールドは次のとおりです。
value: {} | Function
- プラグインの解決された値。options: {} | void
- プラグインに渡されるオプションオブジェクト。dirname: string
- オプションの相対パス。name: string | void
- ユーザーがプラグインインスタンスに付けた名前。例:plugins: [ ['env', {}, 'my-env'] ]
file: Object | void
- Babelが認識している場合の、プラグインのファイルに関する情報。request: string
- ユーザーがリクエストしたファイル。例:"@babel/env"
resolved: string
- 解決されたファイルのフルパス。例:"/tmp/node_modules/@babel/preset-env/lib/index.js"
DEFAULT_EXTENSIONS
babel.DEFAULT_EXTENSIONS: 読み取り専用 string[];
babelがサポートするデフォルトの拡張子リスト(".js", ".jsx", ".es6", ".es", ".mjs", "cjs")。このリストは、@babel/register と @babel/cli がトランスパイルが必要なファイルを決定するために使用されます。このリストを拡張することはできませんが、@babel/cli は --extensions
を使用して他の拡張子をサポートする方法を提供しています。
オプション
オプションの完全なリストはこちらをご覧ください。