ngseed
AngularJS/RequireJS seed project. Documentation
Installation
# Get NPM dependencies:
npm install
# Install global NPM dependencies:
npm -g install bower
npm -g install gulp
npm -g install karma
# Also to be able to run tests from CLI
# without browser window popping consider
# to install PhantomJS:
# http://phantomjs.org/download.html
Gulp flows
To make development faster and more automated there are several Gulp tasks available:
-
gulp
Builds project into
build
directory. Under the hood compiles and compresses Sass/CSS, compiles scripts with (RequireJs) and uglifies it. -
gulp bump-version
Works with gitflow releases. E.g. when youβre on
release/0.4.4
branch it will update cache beaters to follow version. -
gulp karma
Starts Karma server watching scripts updates.
-
gulp karma-ci
Runs tests against the build (which should be run first) and quits, is good to use in CI scenarios.
-
gulp protractor
Runs E2E tests against source files.
-
gulp protractor-ci
Runs E2E tests against the build.
-
gulp sass
Compiles Sass project, feeds output to Autoprefixer and minifies it via CSSO.
-
gulp watch
Listens to changes to stylesheets and scripts and reloads browser page during development.
Code style
To make code prone to minification ng-annotate module is used.
Vendor update
-
bower install
To update all the dependencies to the latest compatible versions.
Tests
Tests use Jasmine for assertions.
You can write tests in both Coffee and JS
(see /source/js/modules/home/home-ctrl.spec.js
and /source/js/modules/home/home-ctrl.spec.coffee
).
E2E Tests
Protractor is used to provide way to do E2E tests. To install go to client
directory and run:
npm install -g protractor
// This installs Selenium standalone
// server and Chrome driver:
webdriver-manager update
// Start the server with:
gulp webdriver
// To test source:
gulp protractor
Check p.conf
and p-compiled.conf
for Protractor settings.
Checkout Protractor docs for more information.
Future Releases
You can checkout planned new features on the Trello Board. Also feel free to create feature requests on github issues.