Simply scaffold your angular 5.0+ library with this yeoman generator and start writing code without having to setup any tedious boilerplate tooling.
Everything is pre-configured, from a local development server with unit tests, through to publishing your library to npm and a demo to github pages. Hopefully the angular-cli project will one day make this generator obsolete, however currently the angular-cli is geared towards creating a full web-app rather than just a single re-usable npm library.
First, install Yeoman and generator-angular-library
using npm (we assume you have pre-installed node.js).
npm install -g yo generator-angular-library
Then create your new repo on github, check it out and from the root of the repo folder run:
yo angular-library
src
should hold your libraries components / services / pipes etc. Organise them however you see fit!test
contains all your libraries test files. Simply suffix the filenames with.spec.ts
and they will be auto-included and randemo
contains a demo app that shows off your library to users. It is also handy during development as unit tests will only get you so far when developing a UI component
Once you've scaffolded out your library, everything is then controlled by npm scripts:
npm start
to serve the demo page of your library with live-reload as you develop. Unit tests are also run in the background.npm test
will run your unit tests once andnpm run test:watch
will run them continuouslynpm run commit
will run the git commit wizard when you're ready to commit a changenpm run release
will publish a new release. First make sure you've created thegh-pages
branch and pushed it to github. Next change the version in package.json to the new version you would like to release, but don't commit it yet. Now runnpm run release
and the new version will be built and published to npm, as well as the demo and documentation generated and pushed to thegh-pages
branch of your project.
- Build your library in typescript with webpack
- Run your tests with karma
- Auto-lint your library with tslint
- Automatic documentation generated with compodoc
- Publish your library to npm
MIT © Matt Lewis