Starter project for a Lerna/TypeScript monorepo.
-
First-class TypeScript support. Type definitions are generated and published for each package.
-
ESLint, configured with XO + TypeScript.
-
Format code (and more) with Prettier.
-
Jest testing framework, configured with
ts-jest
and 100% test coverage. -
Prevent bad commits/pushes with Husky commit hooks πΆ woof!
-
Commitizen-friendly repo with conventional commits and generated CHANGELOG.
-
Continuous integration with Travis-CI.
- Enable automatic publishing to npm by creating an
npm token and adding it as
NPM_TOKEN
to your Travis environment variables. - Enable automatic GitHub release commits by creating a
GitHub token with
public_repo
access and adding it asGH_TOKEN
in Travis (see above). - Coverage reports uploaded to Codecov.
- Greenkeeper enabled.
- Enable automatic publishing to npm by creating an
npm token and adding it as
This project is setup as a GitHub repository template, but really is designed to use Pollinate to generate a new project directly from GitHub using a simple schema.
$ npx pollinate https://github.com/jedmao/lerna-starter.git [options]
All options are optional. Imagine that!
Refer to Pollinate docs for the various ways in which you can provide options.
Use the Name <email> (url)
format, where email
and url
are optional. This
is for the
author
field in package.json.
Typically the name of the monorepo project, but falls back to the org
if not provided.
See org/name resolution for more information.
If provided, must match a
GitHub organization or username to
which you have access. If not provided, it falls back to the name
.
See org/name resolution for more information.
Included in your core package.json
and README.md
.
Though optional, you must provide at least one of the following options:
org
, name
. They will be used in tandem to construct your
GitHub path and npm package name.
GitHub path
/{{ org or name }}/{{ name or org }}
npm package name
@{{ name or org }}/core
The moment you pollinate. πΊπ