TriAngular Notes - MEAN Stack
Angular And The MEAN Stack
2014-05-22 by Darrough West[1] (Meetup)
[1] Another gentleman co-presented, but I never caught his name.
MEAN
- Package management (
npm
andbower
) - Task manager (
grunt
) - Testing baked in
- Obfuscation baked in (
cssmin
anduglify
) jshint
- Social baked in (Passport)
- Fully functional frontend and backend example
Why?
- Increasingly hard to find "good" PHP devs
- Wanted to get away from custom frameworks
- Upgrade everyone's skillsets
- Node and Angular have matured
- Package availability
How?
- Download project from GitHub and follow instructions
- Why not just follow the instructions on the homepage? (
$ npm install -g meanio; mean init myApp
)
- Why not just follow the instructions on the homepage? (
- Heroku for hosting
- MongoHQ for database
MEAN.IO Versus MEAN.js
- MEAN.js is a fork of MEAN.IO
- Recently more or less feature parity
- Just use MEAN.IO
Bad
- No release/snapshot (in heavy active development)
- Packages are pulled from "latest"
- Take a look at npm-shrinkwrap
- Node has views
- This point was confusing. It sounded like they were maintaining two sets of views (frontend and backend)
Mongo
- Migrated from MySQL to MongoHQ
- Use replica set!
Express
- Need to proxy to port 3000 (no good reason)
- Not really issue on Heroku
- connect-assetmanager takes getting used to
Node
- Use async!
- Remember to clean up your packages
Angular
- Don't overload
$scope
and$rootScope
- Use HTML5 polyfills and Respond.js
- Don't put jQuery in controller
- Prefer
angular.element
instead of$