Skip to content

Instantly share code, notes, and snippets.

@smugen
Forked from anonymous/a.js
Created December 14, 2012 16:33
Show Gist options
  • Save smugen/4286736 to your computer and use it in GitHub Desktop.
Save smugen/4286736 to your computer and use it in GitHub Desktop.
Node.js require cache test
var b = require('./b')
,c = require('./c');
console.log(__filename, ":", c.msg);
console.log(__filename, ":", c === b.c);
console.log(__filename, ":", "delete require cache, and require c again");
delete require.cache[require.resolve('./c')];
c = require('./c');
console.log(__filename, ":", c.msg);
console.log(__filename, ":", c === b.c);
console.log(__filename, ":", b.c.msg);
console.log(__filename, "enter");
var c = require('./c');
console.log(__filename, ":", c.msg);
c.msg = "I say B!";
exports.c = c;
console.log(__filename, "exit");
console.log(__filename, "enter");
exports.msg = "I am C.";
console.log(__filename, "exit");
@smugen
Copy link
Author

smugen commented Dec 14, 2012

execute

node a

output

R:\node-req-test\b.js enter
R:\node-req-test\c.js enter
R:\node-req-test\c.js exit
R:\node-req-test\b.js : I am C.
R:\node-req-test\b.js exit
R:\node-req-test\a.js : I say B!
R:\node-req-test\a.js : true
R:\node-req-test\a.js : delete require cache, and require c again
R:\node-req-test\c.js enter
R:\node-req-test\c.js exit
R:\node-req-test\a.js : I am C.
R:\node-req-test\a.js : false
R:\node-req-test\a.js : I say B!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment