- Node
- Mongo
- Grunt
npm install -g grunt-cli
- Bower
npm install -g bower
- Nodemon
npm install -g nodemon
- Docco
npm install -g docco
- Karma
npm install -g karma
- Start by creating a release branch using the standard GitFlow conventions.
- Modify the
version
attribute inpackage.json
andbower.json
to the official release version (without "SNAPSHOT"). - Commit the changes to the release branch.
- Run
grunt release
to build, test, and publish the release artifact to Nexus. - Once the artifact has been published, finish the release branch (including standard GitFlow practices like tagging).
- Switch to the development branch and increment the version to the next release snapshot (e.g. 1.2.3-SNAPSHOT).
- Commit the new development version to develop.
- Push the master branch and development branches to origin.
npm install
grunt init
clean
- Remove the server dist, client dist, client docs, and client test reports.jshint
- Runs the client src and tests through the JSHint Javascript linter.less
- Compiles the less stylesheets into css.ngtemplates
- Combines the src templates into a single javascript file that populates the angular template cache. The output file path of this task is appended to the src of the concat:js task.concat:jsdeps
- Combines the javascript libraries into a single unminified file. This output file will be included in the concat:appjs task.concat:appjs
- Combines the javascript libraries, client src, and templates javascript into a single unminified file.concat:css
- Combines the application stylesheets with library stylesheets into a single unminified file.cssmin
- Minifies the output of concat:cssuglify
- Run the concatenated javascript file through the Uglify2 minifierwatch:development
- Watches the source files and builds the application for development on any change.watch:debug
- Watches the source files and builds the application for debug on any change.watch:production
- Watches the source files and builds the application for production on any change.watch:server
- Watches server files for any change and then runs the server-side Mocha tests.karma:unit
- Starts the karama runner for client-side unit tests. Tests are ran when the task is re-invoked from the watch task.karma:e2e
- Starts the karama runner for client-side e2e tests. Tests are ran when the task is re-invoked from the watch task.karma:unitci
- Runs the unit tests immediately (for CI builds). The application server must be started for this to work correctly.karma:e2eci
- Runs the e2e tests immediately (for CI builds). The application server must be started for this to work correctly.mochacli
- Runs the server side Mocha tests.copy
- Stages all the files for running the application. Each of these tasks are cumulative where production builds off of debug, debug off of development, and development off of vendor.copy:vendor
- Stages all of the 3rd party library filescopy:development
- Stages all the files required for development modecopy:debug
- Stages all the files required for debug modecopy:production
- Stages all the files required for production modejade:debug
- Compiles the server-side jade templates for deployment in debug modejade:production
- Compiles the server-side jade templates for deployment in production modedocco:client
- Builds the docco for the client sourcedocco:app
- Builds the docco for the server/app sourcedocco:grunt
- Builds the docco for the Grunt filedocco:config
- Builds the docco for the server side configuration filesrunapp:development
- Runs the application server in development mode inside a nodemon process that restarts the server on source changes.runapp:debug
- Runs the application server in debug mode inside a nodemon process that restarts the server on source changes.runapp:production
- Runs the application server in production mode inside a nodemon process that restarts the server on source changes.runapp:test
- Runs the application for tests. This server is ran in the background and terminated once the parent Grunt task ends.
-
grunt init
- Runs bower install
- Runs the production task
-
grunt angular
- Runs NPM install for the angular project
- Runs the Angular package Grunt task
-
grunt development
- Cleans the project
- Runs JSHint
- Compiles the LESS files
- Concatinates the CSS files
- Concatinates the application javascript dependencies (for the unit and e2e tests)
- Stages the vendor and application development files
-
grunt debug
- Runs the development build
- Runs ngtemplates to concatenate the applciation template files into javascript
- Concatenates the JavaScript dependencies, application source, and templates in a single file
- Compiles the Jade templates in debug mode
- Stages the application debug files
-
grunt production
- Runs the debug build
- Minifies CSS files
- Minifies JavaScript files
- Compiles the Jade templates in production mode
- Stages the application production files
-
grunt test
- Runs the production build
- Forks the current process and starts the application server (for e2e testing)
- Runs the karma unit tests
karma:unitci
- Runs the karma e2e tests
karma:e2eci
- On completion, the forked node server shuts down
-
grunt deploy
- Runs
grunt test
- Runs
maven:deploy
to deploy the project zip artifact to the Nexus snapshot repository.
- Runs
-
grunt release
- Runs
grunt test
- Runs
maven:release
to deploy the project zip artifact to the Nexus release repository.
- Runs