Run source transform function on Node require
npm install --save node-hook
Before loading desired .js files, install hook
var hook = require('node-hook');
function logLoadedFilename(source, filename) {
return 'console.log("' + filename + '");\n' + source;
}
hook.hook('.js', logLoadedFilename);
require('./dummy');
// prints fulle dummy.js filename, runs dummy.js
hook.unhook('.js'); // removes your own transform
remember: Nodejs caches compiled modules, so if the transform is not
working, you might need to delete the cached entry in require.cache
,
then call require(filename)
again to force reload.
Related: Node require replacement really-need.
You can hook several transformers thanks to the code submitted by djulien
You can get the current transform and run any source through it. For example to see how the current source looks when loaded but before evaluated
const filename = resolve('./call-foo.js')
const transform = Module._extensions['.js']
const fakeModule = {
_compile: source => {
console.log('transformed code')
console.log(source)
}
}
transform(fakeModule, filename)
Author: Gleb Bahmutov © 2013
License: MIT - do anything with the code, but don't blame me if it does not work.
Support: if you find any problems with this module, email / tweet / open issue on Github