Full featured boilerplate for building JavaScript libraries the modern way.
- 📜 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)
- 🐈 Yarn with lock file, pinned devDependencies and fixed Yarn version in .yarnrc using Yarn policies
- ✅ Travis CI
- 🏗 .nvmrc file to enforce the Node.js version for contributors and continuous integration
- ⚡️ Ready to publish and 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/main.js
- profit 💸
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
To run this project, you will need:
- Node.js >= v10.5.0, use nvm - install instructions
- Yarn >= v1.7.0 - install instructions ("Alternatives" tab)
yarn
yarn test
yarn test --watch
When developing you can run:
yarn watch
This will regenerate the build files each time a source file is changed and serve on http://127.0.0.1:5000.
If your package works in the browser, you can open dev/index.html
to try it out.
npm publish
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.
I initially used rollup/rollup-starter-lib but really needed that Jest support so I did it.