https://github.com/steinathan/waterdom
This description will be filled later
https://github.com/steinathan/waterdom
Last synced: about 1 year ago
JSON representation
This description will be filled later
- Host: GitHub
- URL: https://github.com/steinathan/waterdom
- Owner: steinathan
- Created: 2019-06-25T23:51:09.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-19T21:58:43.000Z (over 2 years ago)
- Last Synced: 2025-04-12T02:38:45.381Z (about 1 year ago)
- Language: JavaScript
- Size: 425 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📚 waterdom
> 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 waterdom.zip -LOk https://github.com/algolia/waterdom/archive/master.zip
unzip waterdom.zip
rm waterdom.zip
mv waterdom-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/waterdom) 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.