我正在尝试找出如何拦截所有Node的require
调用,以便我可以记录它们。
已经有一些关于此问题的问题,但是在那里提出的建议方法都未能拦截所有的require调用,也就是说,我想要深入拦截require调用,包括在我的必需模块中进行的调用,以及它们的必需模块和其他模块。
到目前为止,我尝试了以下三种方法:
const _req = require;
global.require = function () {
console.log ( 'require', arguments );
return _req.apply ( this, arguments );
};
const Module = require ( 'module' );
const _load = Module._load;
Module._load = function () {
console.log ( 'require', arguments );
return _load.apply ( this, arguments );
};
const Module = require ( 'module' );
const _wrap = Module.wrap;
Module.wrap = function(script) {
const prepend = `console.log ( module.id );`;
script = prepend + script;
return _wrap(script);
};
但是它们都没有对我起作用。
我在运行 Electron v5 中的 Node.js v12。
intercept-require
,但它不能拦截所有的 require 调用。考虑到require-hook
的工作方式类似,我想它对我也不起作用。 - Fabio Spampinato