Skip to main content

@babel/plugin-transform-modules-amd

History
版本变化
v7.14.0实现了 importInterop 选项
信息

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

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

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

¥This plugin transforms ECMAScript modules to AMD. 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 the different resolution algorithms between implementations of ECMAScript modules and AMD.

示例

¥Example

输入

¥In

JavaScript
export default 42;

输出

¥Out

JavaScript
define(["exports"], function(exports) {
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true,
});

exports.default = 42;
});

安装

¥Installation

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

用法

¥Usage

¥With a configuration file (Recommended)

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

通过 CLI

¥Via CLI

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

通过 Node API

¥Via Node API

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

选项

¥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.

对于此处未列出的选项,请参阅 @babel/plugin-transform-modules-commonjs 的选项。

¥For options not listed here, see options for @babel/plugin-transform-modules-commonjs.