Convert AMD files to ES2016 modules
Switch branches/tags
Clone or download
Latest commit cfab409 Jan 29, 2018

README.md

rollup-plugin-amd

Convert AMD files to ES2016 modules, so they can be included in a Rollup bundle.

Installation

npm install --save-dev rollup-plugin-amd

Usage

import { rollup } from 'rollup';
import amd from 'rollup-plugin-amd';

rollup({
    entry: 'main.js',
    plugins: [
        amd()
    ]
});

The configuration above converts

define(['utils/array', 'react'], function (array, React) {
    React.render();
});

into

import array from './javascripts/utils/array';
import React from './node_modules/react/react.js';

React.render();

Options

import { rollup } from 'rollup';
import amd from 'rollup-plugin-amd';

rollup({
    entry: 'main.js',
    plugins: [
        amd({
            include: 'src/**', // Optional, Default: undefined (everything)
            exclude: [ 'node_modules/**' ], // Optional, Default: undefined (nothing)
            converter: {}, // Optional, Default: undefined
            rewire: function (moduleId, parentPath) { // Optional, Default: false
                return './basePath/' + moduleId;
            }
        })
    ]
});
  • converter options to pass down to the AMD to ES6 converter.

  • rewire allows to modify the imported path of define dependencies.

    • moduleId is the dependency ID
    • parentPath is the path of the file including the dependency
define(['lodash'], function (_) {});

becomes

import _ from './basePath/lodash';

If you're converting AMD modules from requirejs, you can use node-module-lookup-amd to rewire your dependencies

import { rollup } from 'rollup';
import amd from 'rollup-plugin-amd';
import lookup from 'module-lookup-amd';

rollup({
    entry: 'main.js',
    plugins: [
        amd({
            rewire: function (moduleId, parentPath) { // Optional, Default: false
                return lookup({
                    partial: moduleId,
                    filename: parentPath,
                    config: 'path-to-requirejs.config' // Or an object
                });
            }
        })
    ]
});

License

Apache-2.0