/monorepo-eleventy

A monorepo starter template using native NPM workspace 🗂️

Primary LanguageJavaScriptMIT LicenseMIT

Logo

GitHub

A monorepo starter template using native NPM workspace 🗂️

Features

  • Fast
  • No fattening! No Yarn, no Lerna, no NX, or others. Just native NPM!
  • GitHub auto releases for each package (after git push)
  • NPM auto publish for each package (after git push)
  • Auto updates changelog for each package (after git push)
  • Auto updates dependencies
  • Develop packages with mixed languages in one repository
  • Write your code using the latest syntax
  • UMD, CommonJS, and ESM output format for JavaScript packages
  • Auto generate *.rtl.css file for SCSS packages
  • Live playground ready

Usage

Click the “Use this template” button.

Alternatively, you can run:

git clone https://github.com/bent10/monorepo-starter.git
# Go to the project directory
cd monorepo-starter
# Install dependencies
npm i

# or
npx degit "bent10/monorepo-starter" my-project
# Go to the project directory
cd my-project
# Install dependencies
npm i

Installation packages/*

We provide several package templates. Please install the required dependencies based on the template you are using.

Available commands

$ npm run watch       Run watch task for all packages
$ npm run lint        Run lint for all packages
$ npm run build       Run build task for all packages
$ npm run test        Run test for all packages
$ npm run coverage    Run test coverage for all packages
$ npm run prettier    Run prettier for `dist` files (ignoring UMD and *.min.* files)
$ npm run clean       Run clean task for all packages
$ npm run reset       Run clean task for all packages

You can add -w or --workspace flag to target for one or more package(s):

npm run build -w pkg1 -w pkg2 ...

Tech Stack

  • NodeJS (core)
  • ESLint (core)
  • Jest (core)
  • Prettier (core)
  • Renovate (core)
  • Babel (optional)
  • Typescript (optional)
  • SCSS (optional)
  • Stylelint (optional)
  • Rollup (optional)
  • Webpack (optional)
  • SSG – using Eleventy (optional)
  • HTML validate (optional)
  • AVA (optional)
  • Semantic release (optional)

Recipes

Contributing

⚡️  katchow! We 💛  issues.

When committing, please conform to the semantic-release commit standards. Please install commitizen and the adapter globally, if you have not already.

npm i -g commitizen cz-conventional-changelog

Now you can use git cz or just cz instead of git commit when committing. You can also use git-cz, which is an alias for cz.

git add . && git cz

Thank you

A project by Stilearning © 2021.