можно написать patch над модулем.
Каждый модуль в момент require('some-module') попадает в require.cache и далее данный модуль можно пропатчить.
Например:
// first.js
const add = (a,b) => a +b;
module.exports.add = add
// patched.js
const MODULENAME = './first';
const moduleToPatch = require(MODULENAME); // здесь мы кешировали нужный нам модуль
require.cache[require.resolve(MODULETOPATCH)].exports.add = (a,b) => {
console.log('PATCHED ! ! ! ! ')
return a + b;
}
// second.js
require('./patched');
const { add } = require('./first');
console.log(add(10, 20))
// PATCHED ! ! ! !
// 30
Естественно первым нужно подключать модуль для патча, чтобы он сделал первый require у себя