Skip to content

piuccio/rollup-plugin-amd

Repository files navigation

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: { sourceMap: true }
            rewire: function (moduleId, parentPath) { // Optional, Default: false
                return './basePath/' + moduleId;
            }
        })
    ]
});
  • converter options to pass down to the AMD to ES6 converter.

    • Please note that converter option is set to { sourceMap: true } by default. If you want to disable sourcemap, you can set it as { sourceMap: false }. However, this may bring some sourcemap related issues
    • Other options for converter can be passed down in the same way as we set the sourcemap
      converter: {
          sourceMap: true, // Default
          someOtherOption: someOtherOptionValue
          ...
      }
  • 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