A complete, yet simple, starter for Angular 2 using Webpack.
This seed repo serves as an Angular 2 starter for anyone looking to get up and running with Angular 2 and TypeScript fast. Using 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.
- 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 and Codelyzer.
- Documentation with TypeDoc.
Warning: Make sure you're using the latest version of Node.js and NPM
Clone/Download the repo
# clone our repo
git clone https://github.com/CovalentLabs/project-w-app.git project-w-app
# change directory to the app
cd project-w-app
# install the dependencies with npm
npm install
# start the server with hot module reloading, or
npm run start:hmr
# start the server
npm start
go to http://localhost:8080 in your browser.
Deploy to device
Set up your computer with cordova
and the JDK and Android SDK for deploying to Android.
https://cordova.apache.org/docs/en/latest/guide/platforms/android/
# change directory to the app
cd project-w-app
# Must have this directory available in order to use cordova!
mkdir www
# add cordova platform android or ios
cordova platform add android
# build and deploy files with cordova, or
npm run deploy
# if you'd like faster deployment, we can skip optimization plugins using:
set "ENV=skipOpti" && npm run deploy
# or on unix:
ENV=skipOpti npm run deploy
# build files to ./www, then
npm run build
# ensure adb is running with devices connected
adb devices
# deploy to cordova either emulator or connected device
# if this command fails, try deleting the platforms directory and re-initializing the android platform
cordova run android
The following was included information from the boilerplate starter that this is based off of.
What you need to run this app:
node
andnpm
(Use NVM)- Ensure you're running Node (
v6.x.x
+)
fork
this repoclone
your forknpm install
to install all dependencies
After you have installed all dependencies you can now start developing with:
npm start
It will start a local server using webpack-dev-server
which will watch, build (in-memory), and reload for you. The application can be checked at http://localhost:8080
.
As an alternative, you can work using Hot Module Replacement (HMR):
npm run start:hmr
And you are all set! You can now modify your components on the fly without having to reload the entire page.
- 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:
To build your application, run:
npm run build
You can now go to /dist
and deploy that to your server!
You can generate api docs (using TypeDoc) for your code with the following:
npm run docs
No, Webpack will add all the needed Javascript bundles as script tags and all the CSS files as link tags. The advantage is that you don't need to modify the index.html every time you build your solution to update the hashes.
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 bootstrap@next --save
And in vendor.ts add the following:
import 'bootstrap/dist/css/bootstrap.css';