I found that RequireJS has became one of my favorite library, so I need to know it deeply to make it my strong point. This article is log of code reading for 2.0.4.
- it has many helper like bind(), mixin() and each().
- IE6 support: there is a comment "When that browser dies, this can be removed"...
- handling error: overriding this method or putting break point here will help me to debug.
- it has good comments to tell WHY. see about web worker and IE9 support
- there is many
if (isBrowser)so I guess that we can create shorten version which supports only browser.
- we can put data-main attribute into <script> tag which doesn't load require.js (of course we should put it for <script src="require.js"> normally). see here.
- the way to support
shim.deps = array;is very simple.
- to supports both of rhino and Node.js, it checks predefined variable.