Skip to content

Instantly share code, notes, and snippets.

@frostney
Created January 18, 2014 22:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save frostney/8497678 to your computer and use it in GitHub Desktop.
Save frostney/8497678 to your computer and use it in GitHub Desktop.
Node.js CommonJS style require for the browser
require = (name) ->
if Object.hasOwnProperty.call require.cache, name
moduleExp = require.cache[name].module.exports
exportObj = require.cache[name].exports
else
moduleObj = {}
exportObj = {}
require.modules[name].apply(this, [require, moduleObj, exportObj]);
require.cache[name] or= {}
require.cache[name].module = moduleObj
moduleExp = require.cache[name].module.exports
require.cache[name].exports = exportObj
moduleExp or exportObj
require.modules = {}
require.cache = {}
require.resolve = (name, fn) ->
require.modules[name] = fn
require.resolve 'a', (require, module, exports) -> module.exports = 5
require.resolve 'b', (require, module, exports) ->
a = require 'a'
module.exports = a * 2
b = require('b')
console.log b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment