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 everythingUse 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 libraryAdd your email at [INSERT YOUR EMAIL HERE] in
CODE_OF_CONDUCT.md
Update
LICENSE
file according to your preferencesUpdate root
package.json
metadata to represent your projectCode your library and create demo for it
- 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.
- 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+
Show that your project is based off of our starter
[](https://github.com/Tinkoff/angular-open-source-starter)