A complete, yet simple, starter for Angular 2 using webpack 2
Inspired by Angular2 Webpack Starter & Angular 1 Webpack workflow.
This seed repo serves as an Angular 2 starter for anyone looking to get up and running with Angular 2 and TypeScript fast. Using a Webpack for building our files and assisting with boilerplate. We're also using Protractor for our end-to-end story and Karma for our unit tests.
- Best practices in file and application organization for Angular 2.
- Ready to go build system using Webpack for working with TypeScript.
- Easily add new components using Angular 2 cli.
- Testing Angular 2 code with Jasmine and Karma.
- Coverage with Istanbul
- End-to-end Angular 2 code using Protractor.
- Stylesheets with SASS (not required, it supports regular css too).
- Error reported with TSLint.
- Documentation with TypeDoc.
Warning: Make sure you're using the latest version of Node.js and NPM
Clone/Download the repo then edit
app.ts
inside/src/app/app.ts
# clone our repo
git clone https://github.com/ocombe/ng2-webpack.git
# change directory to our repo
cd ng2-webpack
# install the repo with npm
npm install
# start the server
npm start
go to http://localhost:3000 in your browser
What you need to run this app:
node
andnpm
(brew install node
)- Ensure you're running the latest versions Node (
v4.1.x
+) and NPM (2.14.x
+)
fork
this repoclone
your forknpm install
to install all dependencies
After you have installed all dependencies you can now run the app with:
npm start
It will start a local server using webpack-dev-server
which will watch, build (in-memory), and reload for you. The port will be displayed to you as http://localhost:3000
(or if you prefer IPv6, if you're using express
server, then it's http://[::1]:3000/
).
npm install -g angular-cli
to install Angular 2 cli- Add a new component with:
ng generate component my-new-component
- Add a new service with:
ng generate service my-new-service
- Add a new pipe with:
ng generate pipe my-new-pipe
- single run:
npm run build
- build files and watch:
npm run watch
- single run:
npm test
- live mode (TDD style):
npm run test-watch
- single run:
- in a tab, if not already running!:
npm start
- in a new tab:
npm run webdriver-start
- in another new tab:
npm run e2e
- in a tab, if not already running!:
- interactive mode:
- instead of the last command above, you can run:
npm run e2e-live
- when debugging or first writing test suites, you may find it helpful to try out Protractor commands without starting up the entire test suite. You can do this with the element explorer.
- you can learn more about Protractor Interactive Mode here
- instead of the last command above, you can run:
You can generate api docs (using TypeDoc) for your code with the following:
npm run docs
It's simple, just install the lib via npm and import it in your code when you need it. Don't forget that you need to configure some external libs in the bootstrap of your application.
Just install the lib and import the css files in vendor.ts. For example this is how to do it with bootstrap:
npm install [email protected] --save
And in vendor.ts add the following:
import 'bootstrap/dist/css/bootstrap.css';
To take full advantage of TypeScript with autocomplete you would have to install it globally and use an editor with the correct TypeScript plugins.
TypeScript 1.7.x includes everything you need. Make sure to upgrade, even if you installed TypeScript previously.
npm install --global typescript
We have good experience using these editors:
- Visual Studio Code
- Webstorm 11+
- Atom with TypeScript plugin
- Sublime Text with Typescript-Sublime-Plugin
Please follow these basic steps to simplify pull request reviews:
- Please rebase your branch against the current master
- Run
npm install
to make sure your development dependencies are up-to-date - Please ensure that the test suite passes
npm test
before submitting a PR - If you've added new functionality, please include tests which validate its behavior
- Make reference to possible issues on PR comment
- Please detail the affected browser(s) and operating system(s)
- Please be sure to state which version of node and npm you're using
- angular2-webpack-starter (AngularClass)
- Client/Server, Webpack, TypeScript, TSD, Protractor, Karma, Jasmine
- ng2-play (Pawel Kozlowski)
- Client only, Minimalist, SystemJS, Gulp, TypeScript
- angular2-seed (Minko Gechev)
- Client only, SystemJS, Gulp, TypeScript, TSD, Versioned, Env Dev/Prod
- ng2-lab (Roland Groza)
- Client only, ES6, TypeScript, Firebase, Gulp, Ci, TSD, TSLint
- ng2-jspm-seed (Rob Wormald)
- Client only, TypeScript, TSD, Gulp, JSPM, Minimalist
- babel-angular2-app (Shuhei Kagawa)
- Client only, Minimalist, Babel, ES6+, browserify