multipack
🔱 A monorepo template repository. Ideal for building shareable JavaScript packages or React modules.
Site
| Getting Started
| API
| Blog

Features
Lerna structure to build monorepo packages
ESLint and Prettier to enforce code style.
- Pre-commit hooks with
husky and lint-staged
Docusaurus docs generator preconfigured to work well with Github Pages
- Preconfigured
Jest and react-testing-library to test (ts|tsx) files and colect coverage from all packages
- Preconfigured
Github workflow actions to run tests after each pushed commit
Getting started.
- Clone the project:
git clone --depth=1 https://github.com/episclera/multipack.git <YOUR_PROJECT_NAME>
- Setup project:
npm install
Running npm run link:packages will installing all packages dependencies and linking any cross-dependencies. This command is crucial, as it allows you to use your package names in require() as if the packages were already existing and available in your node_modules folder.
Publishing
To build and publish your packages you just need to run: npm run publish:packages
This will run the build script and then publish your packages. It is currently set to publish each package individually so that their versions are independent.
CLI Commands
npm run build:packages - build all packages with webpack in production mode
npm run watch:packages - start webpack in watch mode to rebuild packages on each change
npm run publish:packages - publish all packages in package registry (npm, yarn ...)
npm run link:packages - will installing all packages dependencies and linking any cross-dependencies in each package
npm run test:packages - run jest tests in each package and colect coverage from all packages
npm run watch:test:packages - run and watch all tests for changes
npm run lint:packages - lint all packages
npm run fix:packages - lint and fix all packages
npm run start:docs - start a Docusaurus server that serve files from /docs folder predestinated for docs.
npm run publish:docs - publish generated docs with Docusaurus to Github Pages
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D

Author
@episclera/multipack © Episclera, Released under the MIT License.
Authored and maintained by Episclera with help from contributors (list).
If you like this repository star⭐ and watch👀 on GitHub