@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
export default 42;
输出
¥Out
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
- 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
用法
¥Usage
使用配置文件(推荐)
¥With a configuration file (Recommended)
没有选项:
¥Without options:
{
"plugins": ["@babel/plugin-transform-modules-systemjs"]
}
有选项:
¥With options:
{
"plugins": [
[
"@babel/plugin-transform-modules-systemjs",
{
// outputs SystemJS.register(...)
"systemGlobal": "SystemJS"
}
]
]
}
通过 CLI
¥Via CLI
babel --plugins @babel/plugin-transform-modules-systemjs script.js
通过 Node API
¥Via Node API
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.