Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AngularJS with RequireJS

jowe
June 26, 2014

AngularJS with RequireJS

These are the slides from Johannes Werber talk which were presented on AngularJS Lightning Talks #2 (2014-06-26) in Munich. More details about the event: http://www.meetup.com/AngularJS-Munich/events/164424472/

jowe

June 26, 2014
Tweet

More Decks by jowe

Other Decks in Programming

Transcript

  1. Preview Take-aways ‣ AngularJS injects instances ‣ RequireJS injects classes

    ‣ Keep testing in mind when organizing your app structure
  2. Is RequireJS really needed? ‣ Simple & small apps ‣

    The whole code in one file ‣ Load all packages manually <script src=“…“></script What about large apps…
  3. Schrift in weiß oder grau. Darauf achten, dass Text auf

    Motiv lesbar bleibt. Thema It’s time for… $ bower install requirejs
  4. 3 RequireJS APIs which you need to know ‣ define()

    
 define & register dependencies ‣ require() 
 callback function invoked when all defines() have completed ‣ config() 
 configure source paths, shims and aliases
  5. define([dep1], function(dep1) {}) All your files are wrapped in a

    define() define() must return a Object which is cached in a registry
  6. require([dep1], function(dep1) {}) Act as initialization or root of the

    dependency tree Starts the cascade of dependency checks and script loading Starts the cascade of define() triggers
  7. „RequireJS is a JavaScript file and module loader.“
 (load and

    runtime dependency) „AngularJS comes with a built-in dependency injection mechanism.“
 (construction and ng module dependency)
  8. Hot to use it with AngularJS? ‣ Use define() around

    all your code ‣ Use require.config() to set your paths & config ‣ Use require() to launch your initialize your App https://github.com/tnajdek/angular-requirejs-seed
  9. r.js - the RequireJS Optimizer ‣ Build & deploy RequireJS

    Apps ‣ Deploy uncompressed ‣ Deploy concatenate & uglified ‣ Plugins available for ‣ grunt (grunt-requirejs) ‣ gulp(gulp-requirejs) ‣ broccoli (broccoli-requirejs)
  10. Challenges on huge apps ‣ AMD is not just JavaScript,

    also CSS and Templates
 RequireJS provides plugins for that ‣ Growing app size from trivial to complex
 could be solved by partitioned modules ‣ On-demand load and unload modules
 Currently very difficult ‣ AngularJS 2.0 - deferred loading with ES6 annonations