rollup-config-module
Rollup config to create npm modules that support both ECMAScript module and CommonJS
Last updated 2 years ago by shinnn .
ISC · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install rollup-config-module 
SYNC missed versions from official npm registry.

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"
}
  1. Write your module using ECMAScript import / export instead of require / module.exports, and save it as index.mjs.
  2. Add module field to package.json and let it point to index.mjs.
"module": "index.mjs"
  1. Run the build script and you'll see index.js is created.
  2. 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

Current Tags

  • 2.0.2                                ...           latest (2 years ago)
  • 2.0.0-2                                ...           next (3 years ago)

11 Versions

  • 2.0.2                                ...           2 years ago
  • 2.0.1                                ...           2 years ago
  • 2.0.0                                ...           3 years ago
  • 2.0.0-2                                ...           3 years ago
  • 2.0.0-1                                ...           3 years ago
  • 2.0.0-0                                ...           3 years ago
  • 1.0.0                                ...           4 years ago
  • 0.1.0                                ...           4 years ago
  • 0.0.2                                ...           4 years ago
  • 0.0.1                                ...           4 years ago
  • 0.0.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 1
Last Month 77
Dependencies (1)
Dev Dependencies (6)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |