Angular Open-source Starter
How to use
This is a starter project for creating open-source libraries for Angular. It is a full-fledged Angular workspace with demo application and easy library addition. It is designed to be used for open-sourcing libraries on GitHub and has everything you'd need ready for CI, code coverage, SSR testing, StackBlitz demo deployment and more.
-
Run
npm ci
to install everything -
Use search to replace all mentions of
angular-open-source-starter
with your new library name (npmScope
insidenx.json
, matadata of the rootpackage.json
, rootREADME.md
etc.) -
Create basic file structure via Nx-generators:
nx g @nrwl/js:library [your-library-name]
- create Typescript library. See available options.nx g @nrwl/angular:library [your-library-name]
- create Angular library. See available options.
-
Fill in
projects/[your-library-name]/package.json
metadata for your newly generated library -
Add your email at [INSERT YOUR EMAIL HERE] in
CODE_OF_CONDUCT.md
-
Update
LICENSE
file according to your preferences -
Update root
package.json
metadata to represent your project -
Code your library and create demo for it
Cool features
- Versioning is ready for you with following simple commands:
{
"release": "standard-version",
"release:patch": "npm run release -- --release-as patch",
"release:minor": "npm run release -- --release-as minor",
"release:major": "npm run release -- --release-as major",
"publish": "nx run-many --target build --all --exclude=demo && nx run-many --target publish --all"
}
Just use Conventional Commits format and CHANGELOG.md
will be
automatically generated on releases by
Standard Version.
-
This project has Angular Universal — you can easily test your library with SSR and Prerender:
npm run serve:dev:ssr
ornpm run build:prerender && npm run serve:prerender
-
CI and code coverage are ready, GitHub Action checks that packages build, test and lint correctly. It also sends test results to Codecov.
-
Precommit checks, prettier, linter and all that jazz is there.
-
You can also deploy your demo to StackBlitz with no hustle, just use link in the following format:
https://stackblitz.com/github/[User|Organization]/[Repository]/tree/main/projects/demo
-
You can add more libraries using the same Nx-generators to create a whole Angular Workspace with multiple libraries. Versioning and publishing is configured that they are released simultaneously like Angular packages.
Infrastructure
- GitHub Actions
- Node.js 16+, npm 8+
- Angular 12+
- TypeScript 4+
- Prettier 2.6+
- Stylelint 14+
- ESLint 7+
- Husky 7+
- Cypress 10+
- Jest 27+
- Nx 13+
Badge
Show that your project is based off of our starter
[![angular-open-source-starter](https://img.shields.io/badge/made%20with-angular--open--source--starter-d81676?logo=angular)](https://github.com/Tinkoff/angular-open-source-starter)