Skip to main content

@babel/plugin-transform-modules-amd

History
VersionChanges
v7.14.0Implemented the importInterop option
info

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

allowTopLevelThis

boolean, defaults to false.

When this option is true, Babel will transform top level this (always undefined in ES Modules) to void 0.

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.