📚 rollup-jest-boilerplate
Full featured boilerplate for building JavaScript libraries the modern way.
Features
-
📜 Rollup.js configuration providing compatibility with different module systems (CommonJS, ECMAScript, UMD for<script>
tags) -
🃏 Jest setup with watch mode working -
🛀 Renovate configuration for auto updates (you have to activate it via https://github.com/apps/renovate) -
✅ Travis CI -
🏗 .nvmrc file to enforce the Node.js version for contributors and continuous integration -
⚡️ Ready to publish and use
How to use
Decide of a new library name, let's say new-super-library
(🤦🏼♀️), then in a terminal:
curl --output rollup-jest-boilerplate.zip -LOk https://github.com/algolia/rollup-jest-boilerplate/archive/master.zip
unzip rollup-jest-boilerplate.zip
rm rollup-jest-boilerplate.zip
mv rollup-jest-boilerplate-master new-super-library
Next steps:
- search the project for
rollup-starter-lib
and replace everywhere withnew-super-library
- start coding in src/index.js
- profit
💸
Live examples
Those examples are using the live published version of this boilerplate library on npm and they run with CodeSandbox.
- ECMAScript
- CommonJS
- UMD, this leverages jsDelivr npm CDN
Developer environment requirements
To run this project, you will need:
- Node.js >= v10.5.0, use nvm - install instructions
Running tests
npm
npm test
npm test --watch
Dev mode
When developing you can run:
npm run watch
This will regenerate the build files each time a source file is changed and serve on http://127.0.0.1:5000.
Previewing umd build in the browser
If your package works in the browser, you can open dev/index.html
to try it out.
Publishing
npm publish
Additional tooling
Based on your need, you might want to add:
- ESLint and Prettier
- TypeScript support
- Monorepo support with Lerna
- CHANGELOG.md generation with conventional-changelog
If so, please do and open pull requests when you feel like it.
Original idea
I initially used rollup/rollup-starter-lib but really needed that Jest support so I did it.