Skip to content

Instantly share code, notes, and snippets.

@amark
Created August 21, 2013 07:46
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 amark/6291429 to your computer and use it in GitHub Desktop.
Save amark/6291429 to your computer and use it in GitHub Desktop.
Require that works everywhere, tested on all browsers IE6 or more modern and Node! Weighs 2KB. Save this file as "imports.js", then include it as a script tag for the browser, and use as below for your own code - Node works automatically. `;module.exports=require('./path/to/imports')('hello',function(mods){ /* your code here */ return 'Hello Wor…
(function(){var m=m||{},g=m,a={id:"imports"};g.opts=g.opts||{};g.d={l:{},n:{},a:{},w:{}};g.z="undefined"!==typeof GLOBAL&&GLOBAL.global&&GLOBAL.process&&GLOBAL.process.env&&GLOBAL.process.pid&&GLOBAL.process.execPath?function(){global.node=g.node=!0;module.exports=function(b,e,d){var c=a.r(b,e,d);c.s=g.y||(module.parent||{}).filename;a.e(a.d(c.d,c.s,{}),function(b,e){c.a[b]=a.n(e=require(g.y=e))?void 0:e});return c.i(c.a)}}:function(){var b=window;g.page=!0;b.root=g;b.console=b.console||{log:function(a){return a}};
location.local="file:"===location.protocol?"http:":"";b.__dirname="";b.module={exports:b.exports={}};a.l=function(a,b){var c="script",f=document.createElement(c);module.sync=null!==f.onload&&f.readyState?1:0;var h=2166136261,g=a.length,k=b,q=/=\?/,r=window.setTimeout,n,m,p=function(a){document.body&&(a=a||n)&&f&&document.body[a]?document.body[m=a](f):r(p,0)};if(q.test(a)){for(;g--;)h=16777619*h^a.charCodeAt(g);window[c+=0>h?-h:h]=function(){k.apply(k,arguments);delete window[c]};a=a.replace(q,"="+
c);b=0}f.onload=f.onreadystatechange=function(){if(m&&/de|m/.test(f.readyState||"m")){b&&b();p(n="removeChild");try{for(b in f)delete f[b]}catch(a){}}};f.src=a;b&&p(n="appendChild")};a.l("#");b.require=module.require=function(b){if(!b)return require;if(a.q(b)==a.q(a.id))return a.r;var d,c=0;a.e(b=a.L(b)?b:[b],function(f){a.g(f,function(a){++c&&b.length<=c&&d&&d(a)})});return function(a){d=a}};require.resolve=a.f;require.cache={};a.y();b.imports=a};a.T=function(a){return"string"==typeof a?!0:!1};a.L=
function(a){return a instanceof Array?!0:!1};a.F=function(a){return a instanceof Function?!0:!1};a.O=function(b){return b instanceof Object&&!a.L(b)&&!a.F(b)?!0:!1};a.n=function(b){return a.O(b)?a.e(b,function(a,b){if(b)return!0})?!1:!0:!1};a.h=function(a,e){return Object.prototype.hasOwnProperty.call(a,e)};a.e=function(b,e){var d=0,c=0,f,g,l=a.F(e),k=function(a,b){void 0!==b?(g=g||{},g[a]=b):(g=g||[],g.push(a))};if(a.L(b))for(f=b.length;d<f;d++){if(c=d+a.e.i,c=e(b[d],c,k),void 0!==c)return c}else if(a.O(b))for(d in b)if(a.h(b,
d)&&(c=e(b[d],d,k),void 0!==c))return c;return l?g:a.e.i?0:-1};a.e.i=1;a.e.u=function(b,e){var d={};a.e(b,function(b,f){a.h(d,f)||(d[f]=b)});a.e(e,function(b,f){a.h(d,f)||(d[f]=b)});return d};a.o=function(b){a.o.l=a.o.l||[];if(!b)return a.e(a.o.l,function(a){a.fn&&a.fn()});var e={fn:b,off:function(){e.fn=!1}};a.o.l.push(e);return e};a.r=function(b,e,d){var c={n:b,i:e,d:d,a:{}};c.d=a.L(c.d)?a.e(c.d,function(a,b,c){c(a,1)}):c.d;if(g.node)return c;c.z=function(){return a.d(c.d,c.s),c.l()};c.l=function(){if(!c.g&&
!a.e(a.d(c.d,0,{}),function(b,e,d){if(!(d=g.d.l[e])||2===d)return!0;d&&(d.l&&b&&a.T(b)&&void 0===c.a[b])&&(c.a[b]=d.l)}))return c.o.off(),c.g={l:c.i(c.a)},module.exports=exports=c.g.l,c.s&&(g.d.l[c.s]=c.g,a.o()),c.g.l};c.o=a.o(c.l);c.m=function(a){module.on=c.m=!1;g.d.n[c.s=a]=c.n;if(g.d.a[a]=c.d)g.d.l[a]=2;return c.z()};module.on=require.ing?c.m:c.m(a.s(1))||!1};a.d=function(b,e,d,c){a.e(b,function(f,h,l,k){l=h;k={p:h};e&&(delete b[h],b[l=a.f(e,a.p(l))]=f);a.L(f)&&(delete b[h],f=b[l]=a.e(f,function(b,
c,d){d(a.f(e,a.p(b)),1)}));a.O(f)&&(k.d=f,d&&a.d(f,0,d));f&&a.T(f)&&(k.n=f);if(d)k.s=a.u(a.p(l)),(h=d[k.s])&&1!==h||(d[k.s]=(c?1:k.n)||a.q(l),1!==h&&k.s&&a.T(k.s)&&(f=g.d.a[k.s])&&(a.O(f)||a.L(f))&&a.d(f,0,d,1));else return a.g(l,k)});return d};a.u=function(a){if(!g.page)return a;var e=document.createElement("div");e.innerHTML='<a href="'+a+'">x</a>';return e.firstChild.href};a.p=function(a){return g.page?/\.js$/i.test(a)?a:a+".js":a};a.q=function(b){if(!a.T(b))return"";b=b.replace(/^\./,"");return b.split("/").reverse()[0].replace(/\.js$/i,
"")};a.f=function(a,e){if(!a||"."!=e.charAt(0))return e;var d=a.split("/");s=e.split("/");d.pop();for(a=0;a<s.length;a++)e=s[a],".."==e?d.pop():"."!=e&&d.push(e);return d.join("/")};a.g=function(b,e,d){if(a.q(b)==a.q(a.id))return a.r;e=e||{};var c=g.d.w;if(module.sync){if(!d&&!a.n(c)){c[b]=e;e.d&&(c=g.d.w=a.e.u(c,e.d));return}c[b]=e;e.d&&(c=g.d.w=a.e.u(c,e.d))}var f=a.p(b),h=a.u(f);d=function(d){!1!==d&&(console.log(f," loaded"),g.d.l[h]=1,module.on&&module.on(h),a.F(e)&&e(d));a.o();!module.sync&&
e.d&&a.d(e.d);module.sync&&(delete c[b],a.e(c,function(b,d,e){delete c[d];a.g(d,b,1);return 1})||(c=g.d.w=!1))};if(g.d.l[h]||0===g.d.l[h])return d(!1);g.d.l[h]=0;require.ing=!0;try{a.l(f,d)}catch(l){console.log(l)}console.log("loading",f)};a.s=function(){var b=document.getElementsByTagName("script"),b=(b[b.length-1]||{}).src;return a.q(b)===a.id?location:b||location};a.z=function(a,e){try{(window.execScript||function(a){window.eval.call(window,a)})(a)}catch(d){console.log(d,a)}};g.c=0;a.y=function(b){if(g.page){var e=
document.getElementsByTagName("script"),d,c;for(c in e){var f=e[c];b=f.src||b;f.id||!f.innerHTML||a.q(f.src)!==a.q(a.id)?!1:d=f}d&&(a.z(d.innerHTML,"config"),d.id=a.id+g.c++);return b}};g.i=(g.z(),a.y)})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment