@babel/plugin-transform-modules-systemjs
情報
このプラグインは、`modules`オプションの下で`@babel/preset-env`に含まれています。
このプラグインは、ECMAScriptモジュールをSystemJSに変換します。Babelは、ECMAScriptモジュールとSystemJSの実装間の異なる解決アルゴリズムを認識していないため、import/export文(`import "./mod.js"`)とimport式(`import('./mod.js')`)の*構文のみ*が変換されることに注意してください。
例
入力
JavaScript
export default 42;
出力
JavaScript
System.register([], function(_export, _context) {
return {
setters: [],
execute: function() {
_export("default", 42);
},
};
});
動的importサポート(`import('./lazy.js').then(m => ...)`)には、このプラグインの前に@babel/plugin-syntax-dynamic-importプラグインを有効にしてください。
インストール
- npm
- Yarn
- pnpm
npm install --save-dev @babel/plugin-transform-modules-systemjs
yarn add --dev @babel/plugin-transform-modules-systemjs
pnpm add --save-dev @babel/plugin-transform-modules-systemjs
使用方法
設定ファイルを使用する場合(推奨)
オプションなし
babel.config.json
{
"plugins": ["@babel/plugin-transform-modules-systemjs"]
}
オプションあり
babel.config.json
{
"plugins": [
[
"@babel/plugin-transform-modules-systemjs",
{
// outputs SystemJS.register(...)
"systemGlobal": "SystemJS"
}
]
]
}
CLI経由
シェル
babel --plugins @babel/plugin-transform-modules-systemjs script.js
Node API経由
JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-modules-systemjs"],
});
オプション
moduleIds
boolean
、デフォルトは!!moduleId
追加されたバージョン: v7.9.0
モジュールIDの生成を有効にします。
moduleId
文字列
追加されたバージョン: v7.9.0
モジュールに使用するハードコードされたID。getModuleId
と併用することはできません。
getModuleId
(name: string) => string
追加されたバージョン: v7.9.0
Babelによって生成されたモジュール名を与えると、使用する名前を返します。偽の値を返すと、元のname
が使用されます。
moduleRoot
文字列
追加されたバージョン: v7.9.0
生成されたモジュール名に含めるルートパス。