On Friday, 6 November 2015 08:39:12 UTC+11, Ingwie Phoenix wrote:
>
> Hey folks. 
>
> While developing a function that lets me require() custom files, I took 
> the original JS and jSON "loaders" as examples. 
>
> But what I saw within the JS version confused me: It didn’T return a 
> thing! 
>
>
> > console.log(require.extensions[".js"].toString()) 
> function (module, filename) { 
>   var content = fs.readFileSync(filename, 'utf8'); 
>   module._compile(internalModule.stripBOM(content), filename); 
> } 
>
>
> So - is require() "really" sync? Or, is it actually async? 
>
> Kind regards, Ingwie!


It is sync, but you are not returning anything. Result of  _compile is in 
module.exports.

This is the code I use to require manually (in my case I didn't want it to 
be cached by module system):

function myRequire(filename) {
   var m = new module.constructor();
   m.paths = module.paths;
   var src = fs.readFileSync(filename).toString();
   m._compile(src, filename);
   return m.exports;
}

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/330edfd2-4366-4003-8c66-310169b5cd08%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to