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

AngularJS with RequireJS

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for jowe 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/

Avatar for jowe

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