Generated from HotTowel Angular
Opinionated AngularJS style guide for teams by @john_papa
More details about the styles and patterns used in this app can be found in my AngularJS Style Guide and my AngularJS Patterns: Clean Code course at Pluralsight and working in teams.
- Install Node.js
- on OSX use homebrew
brew install node
- on Windows use chocolatey
choco install nodejs
-
Install Yeoman
npm install -g yo
-
Install these NPM packages globally
npm install -g bower gulp nodemon`
Refer to these instructions on how to not require sudo
- Run code analysis using
gulp analyze
. This runs jshint, jscs, and plato.
- Run the unit tests using
gulp test
(via karma, mocha, sinon).
-
Run the project with
gulp serve-dev --sync
-
--sync
opens it in a browser and updates the browser with any files changes.
- Build the optimized project using
gulp build
- This create the optimized code for the project and puts it in the build folder
- Run the optimize project from the build folder with
gulp serve-build
HotTowel Angular starter project
The structure also contains a gulpfile.js and a server folder. The server is there just so we can serve the app using node. Feel free to use any server you wish.
/src
/client
/app
/content
When you generate the project it should run these commands, but if you notice missing pavkages, run these again:
npm install
bower install
The app has 4 feature modules and depends on a series of external modules and custom but cross-app modules
app --> [
app.admin,
app.dashboard,
app.layout,
app.widgets,
app.core --> [
ngAnimate,
ngSanitize,
ui.router,
blocks.exception,
blocks.logger,
blocks.router
]
]
Core modules are ones that are shared throughout the entire application and may be customized for the specific application. Example might be common data services.
This is an aggregator of modules that the application will need. The core
module takes the blocks, common, and Angular sub-modules as dependencies.
Block modules are reusable blocks of code that can be used across projects simply by including them as dependencies.
The blocks.logger
module handles logging across the Angular app.
The blocks.exception
module handles exceptions across the Angular app.
It depends on the blocks.logger
module, because the implementation logs the exceptions.
The blocks.router
module contains a routing helper module that assists in adding routes to the $routeProvider.