A client-side CommonJS <code>require</code> implementation that does NOT require a precompilation build step nor server-side middleware. It instead utilizes synchronous <code>XMLHttpRequest</code>s and <code>eval</code> instead, which does impose a series of limitations unless you're wil
"breq" (browser-require) is a client-side CommonJS
require implementation that does NOT require a
precompilation build step nor server-side middleware. It instead utilizes synchronous
eval instead, which does impose a series of limitations
unless you're willing to generate a whole mess of
Terrible for performance, nice for dynamic ease of use.
In your web page:
Given the browser-based nature of "breq", there are some important limitations to keep in mind that
differ from Node's
require.resolve lookup algorithms:
node_modulesdynamic lookup for named modules as this would usually result in a series of
404s before it is located.
Some ideas for future exploration in "breq":
setModuleRootor a config property like
require.paths] where we can seek out named modules, e.g.
require.setModuleRoot("/node_modules/"); var mod = require("myCjsModule"); // path will [first] resolve to "/node_modules/myCjsModule/index.js"
4. Allow consumers to set a configuration option that _does_ enable the actual Node-style lookupalgorithm, keeping in mind that this setup will likely produce an exceptionally large quantityof `404`s. This would also include auto-appending the ".js" extension during some of the lookupattempts if it is not already present, e.g.```jsvar mod = require("./myCjsModule"); // path will resolve to "./myCjsModule.js"