Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/algolia/rollup-jest-boilerplate
🎉 Full featured boilerplate for building JavaScript libraries the modern way
https://github.com/algolia/rollup-jest-boilerplate
boilerplate jest library rollup
Last synced: 2 months ago
JSON representation
🎉 Full featured boilerplate for building JavaScript libraries the modern way
- Host: GitHub
- URL: https://github.com/algolia/rollup-jest-boilerplate
- Owner: algolia
- License: mit
- Archived: true
- Created: 2018-06-27T22:08:40.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-03T07:12:46.000Z (over 1 year ago)
- Last Synced: 2024-08-24T13:36:43.205Z (3 months ago)
- Topics: boilerplate, jest, library, rollup
- Language: JavaScript
- Size: 2.21 MB
- Stars: 80
- Watchers: 56
- Forks: 12
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📚 rollup-jest-boilerplate
> Full featured boilerplate for building JavaScript libraries the modern way.
## Features
- 📜 [Rollup.js](https://rollupjs.org/guide/en) configuration providing compatibility with different module systems (CommonJS, ECMAScript, UMD for `` tags)
- 🃏 [Jest](http://jestjs.io/) setup with watch mode working
- 🛀 [Renovate](https://github.com/apps/renovate) configuration for auto updates (you have to activate it via https://github.com/apps/renovate)
- 🐈 [Yarn](https://yarnpkg.com/) with lock file, [pinned](https://renovatebot.com/docs/dependency-pinning/) devDependencies and fixed Yarn version in .yarnrc using [Yarn policies](https://yarnpkg.com/lang/en/docs/cli/policies/)
- ✅ [Travis CI](https://travis-ci.com/)
- 🏗 [.nvmrc](https://github.com/creationix/nvm) 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:
```sh
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 with `new-super-library`
- start coding in [src/main.js](src/main.js)
- profit 💸## Live examples
Those examples are using the live published version of this boilerplate library on [npm](https://www.npmjs.com/rollup-jest-boilerplate) and they run with [CodeSandbox](https://codesandbox.io/).
- [ECMAScript](https://codesandbox.io/s/7ojknnqjl6?module=%2Fsrc%2Findex.js)
- [CommonJS](https://codesandbox.io/s/o5q018q609?module=%2Fsrc%2Findex.js)
- [UMD](https://codesandbox.io/s/jyqqp21rv), this leverages [jsDelivr npm CDN](https://www.jsdelivr.com/features)## Developer environment requirements
To run this project, you will need:
- Node.js >= v10.5.0, use nvm - [install instructions](https://github.com/creationix/nvm#install-script)
- Yarn >= v1.7.0 - [install instructions ("Alternatives" tab)](https://yarnpkg.com/en/docs/install#alternatives-rc)## Running tests
```sh
yarn
yarn test
yarn test --watch
```## Dev mode
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.
### Previewing umd build in the browser
If your package works in the browser, you can open `dev/index.html` to try it out.
## Publishing
```sh
npm publish
```## Additional tooling
Based on your need, you might want to add:
- [ESLint](https://eslint.org/) and [Prettier](https://prettier.io/)
- [TypeScript](https://www.typescriptlang.org/) support
- Monorepo support with [Lerna](https://lernajs.io/)
- CHANGELOG.md generation with [conventional-changelog](https://github.com/conventional-changelog)If so, please do and open pull requests when you feel like it.
## Original idea
I initially used [rollup/rollup-starter-lib](https://github.com/rollup/rollup-starter-lib) but really needed that Jest support so I did it.