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:
srcshould hold your libraries components / services / pipes etc. Organise them however you see fit!
testcontains all your libraries test files. Simply suffix the filenames with
.spec.tsand they will be auto-included and ran
democontains 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 startto serve the demo page of your library with live-reload as you develop. Unit tests are also run in the background.
npm testwill run your unit tests once and
npm run test:watchwill run them continuously
npm run commitwill run the git commit wizard when you're ready to commit a change
npm run releasewill publish a new release. First make sure you've created the
gh-pagesbranch 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 run
npm run releaseand the new version will be built and published to npm, as well as the demo and documentation generated and pushed to the
gh-pagesbranch 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