2.0.2 • Published 5 years ago

rollup-config-module v2.0.2

Weekly downloads
6
License
ISC
Repository
github
Last release
5 years ago

rollup-config-module

npm version Build Status Coverage Status

Rollup config to create npm modules that support both ECMAScript module and CommonJS

Installation

Use npm.

npm install --save-dev rollup-config-module

Usage

For module authors

  1. Include rollup --config=node:module to the build part of your module's npm scripts.

    "scripts": {
      "build": "rollup --config=node:module",
      "pretest": "npm run-script build"
    }
  2. Write your module using ECMAScript import / export instead of require / module.exports, and save it as index.mjs.

  3. Add module field to package.json and let it point to index.mjs.

    "module": "index.mjs"
  4. Run the build script and you'll see index.js is created.

  5. Include both index.mjs and index.js to the published npm package.

    "files": [
      "index.js",
      "index.mjs"
    ]

A real world example would help understanding how to create a package with rollup-config-module.

For module users

Modules built with this configuration can be used in both ES2015+ projects and traditional require-based projects.

Users can load index.mjs with a build tool that supports module field, for example rollup-plugin-node-resolve and Webpack.

import fn from 'awesome-npm-package';

Users can also load index.js via Node's built-in require,

const fn = require('awesome-npm-package');

because index.js has been compiled from index.mjs with all import and export replaced with require and module.exports.

import {inspect} from 'util';
import isNaturalNumber from 'is-natural-number';

export default function(v) {
  if (!isNaturalNumber(v)) {
    console.log(inspect(v) + 'is not a natural number.');
  }
}

'use strict';

var util = require('util');
var isNaturalNumber = require('is-natural-number');

module.exports = function(v) {
  if (!isNaturalNumber(v)) {
    console.log(util.inspect(v) + 'is not a natural number.');
  }
}

License

ISC License © 2018 Shinnosuke Watanabe

2.0.2

5 years ago

2.0.1

6 years ago

2.0.0

6 years ago

2.0.0-2

6 years ago

2.0.0-1

6 years ago

2.0.0-0

6 years ago

1.0.0

8 years ago

0.1.0

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago

0.0.0

8 years ago