Simply scaffold your module 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 module 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 module.
npm install -g yo generator-angular2-module
Then create your new repo on github, check it out and from the root of the repo folder run:
To generate the demo:
git branch gh-pagesgit push origin gh-pagesnpm run gh-pages
srcshould hold your modules components / services / pipes etc. Organised them however you see fit!
testcontains all your modules test files. Simply suffix the filenames with
.spec.tsand they will be auto-included and ran
democontains a demo app that shows off your module 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 module everything is then controlled by npm scripts:
npm startto serve the demo page of your module 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 module in typescript with webpack
- Run your tests with karma
- Auto-lint your module with tslint
- Automatic documentation generated with typedoc
- Publish your module to npm
MIT © Matt Lewis