Skip to main content

@babel/plugin-transform-modules-systemjs

信息

此插件包含在 @babel/preset-env 中的 modules 选项下

¥This plugin is included in @babel/preset-env under the modules option

该插件将 ECMAScript 模块转换为 SystemJS。请注意,只有导入/导出语句 (import "./mod.js") 和导入表达式 (import('./mod.js')) 的语法被转换,因为 Babel 不知道 ECMAScript 模块和 SystemJS 实现之间的不同解析算法。

¥This plugin transforms ECMAScript modules to SystemJS. Note that only the syntax of import/export statements (import "./mod.js") and import expressions (import('./mod.js')) is transformed, as Babel is unaware of different resolution algorithms between implementations of ECMAScript modules and SystemJS.

示例

¥Example

输入

¥In

JavaScript
export default 42;

输出

¥Out

JavaScript
System.register([], function(_export, _context) {
return {
setters: [],
execute: function() {
_export("default", 42);
},
};
});

对于动态导入支持(import('./lazy.js').then(m => ...)),在此之前启用 @babel/plugin-syntax-dynamic-import 插件。

¥For dynamic import support (import('./lazy.js').then(m => ...)), enable the @babel/plugin-syntax-dynamic-import plugin before this one.

安装

¥Installation

npm install --save-dev @babel/plugin-transform-modules-systemjs

用法

¥Usage

¥With a configuration file (Recommended)

没有选项:

¥Without options:

babel.config.json
{
"plugins": ["@babel/plugin-transform-modules-systemjs"]
}

有选项:

¥With options:

babel.config.json
{
"plugins": [
[
"@babel/plugin-transform-modules-systemjs",
{
// outputs SystemJS.register(...)
"systemGlobal": "SystemJS"
}
]
]
}

通过 CLI

¥Via CLI

Shell
babel --plugins @babel/plugin-transform-modules-systemjs script.js

通过 Node API

¥Via Node API

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-modules-systemjs"],
});

选项

¥Options

moduleIds

boolean 默认为 !!moduleId

¥boolean defaults to !!moduleId

添加于:v7.9.0

¥Added in: v7.9.0

启用模块 ID 生成。

¥Enables module ID generation.

moduleId

string

添加于:v7.9.0

¥Added in: v7.9.0

用于模块的硬编码 ID。不能与 getModuleId 一起使用。

¥A hard-coded ID to use for the module. Cannot be used alongside getModuleId.

getModuleId

(name: string) => string

添加于:v7.9.0

¥Added in: v7.9.0

给定 babel 生成的模块名称,返回要使用的名称。返回一个虚假值将使用原始的 name

¥Given the babel-generated module name, return the name to use. Returning a falsy value will use the original name.

moduleRoot

string

添加于:v7.9.0

¥Added in: v7.9.0

包含在生成的模块名称上的根路径。

¥A root path to include on generated module names.