rollup-starter-lib
This repo contains a bare-bones example of how to create a library using Rollup, including importing a module from node_modules
and converting it from CommonJS.
We're creating a library called how-long-till-lunch
, which usefully tells us how long we have to wait until lunch, using the ms package:
console.log('it will be lunchtime in ' + howLongTillLunch());
Getting started
Clone this repository and install its dependencies:
git clone https://github.com/rollup/rollup-starter-lib
cd rollup-starter-lib
npm install
npm run build
builds the library to dist
, generating three files:
dist/how-long-till-lunch.cjs.js
A CommonJS bundle, suitable for use in Node.js, thatrequire
s the external dependency. This corresponds to the"main"
field in package.jsondist/how-long-till-lunch.esm.js
an ES module bundle, suitable for use in other people's libraries and applications, thatimport
s the external dependency. This corresponds to the"module"
field in package.jsondist/how-long-till-lunch.umd.js
a UMD build, suitable for use in any environment (including the browser, as a<script>
tag), that includes the external dependency. This corresponds to the"browser"
field in package.json
npm run dev
builds the library, then keeps rebuilding it whenever the source files change using rollup-watch.
npm test
builds the library, then tests it.
Note that you would often include the dist
folder in your .gitignore file, but they are included here for ease of illustration.
Variations
- babel — illustrates writing the source code in ES2015 and transpiling it for older environments with Babel
- buble — similar, but using Bublé which is a faster alternative with less configuration
License
MIT.