Skip to main content

@babel/plugin-transform-modules-amd

History
VersionChanges
v7.14.0Implemented the importInterop option

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

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

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

Via CLI

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

Via Node API

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

Options

moduleIds

boolean defaults to !!moduleId

Added in: v7.9.0

Enables module ID generation.

moduleId

string

Added in: v7.9.0

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

getModuleId

(name: string) => string

Added in: v7.9.0

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

moduleRoot

string

Added in: v7.9.0

A root path to include on generated module names.

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