The cautious Architect's intro
uRequire converts from AMD and/or nodejs module formats (or a hybrid) to either UMD, to pure AMD/nodejs or a combined .js that runs everywhere.
uRequire has built in support for coffeescript, Livescript, coco & iced-coffeescript (and its trivial to add others). It aims to simplify the authoring of code written in anything to run everywhere. Harmony modules will be added when mainstream parser support becomes available.
You will no longer need to add UMD around your non-modular code to AMDdify the deployment.
You will no longer need to fall to the travesty of concatanation of .js files to produce your final
You are empowered to use modules to better structure your code during development and deploy in one simple step.
Keep it DRY!
The aim is to cater for (m)any format intricacies and fix (m)any common pains, problems and omissions from module definition formats.
uRequire empowers code reuse & modularity without one-side locking.
The aim is that when no browser/DOM or nodejs specifics are present, the same source code runs & tests on both browser and nodejs (and in hte future WinJS, Titanium and whatever:-).
uRequire can generate code and inject it on modules. With flexible templates (& parsers), it can also convert code structure.
Using features like
exports.bundle allows you to cleanly declare you bundle global-looking modules in one place, without poluting the global
window object. The less code u write, the less errors and barriers!
Finally, you can deploy your code in one step to run either on node or browser as separate module files (development mode) or as one combined & optimized file, with or without AMD runtime.
uRequire empowers a form of declarative feature injection for modules.
uRequire has a unique in-memory resource conversion workflow / assets pipeline engine, that allows you to convert from any resource to any other, using an expressive, small and extensible declaration. See more in Resource Converters.
inject, replace or remove dependencies from your modules.
inject, replace or remove code fragments from your modules.