Javascript 截取所有节点';我们需要电话

Javascript 截取所有节点';我们需要电话,javascript,node.js,require,Javascript,Node.js,Require,我试图找出如何拦截所有节点的require调用,以便记录它们 关于这一点,已经有一些问题,但建议的方法在拦截我的所有require调用时失败,即我想深入拦截require调用,也就是在我所需的模块内进行的调用,以及它们所需的模块等等 到目前为止,我已经尝试了以下3种方法: const\u req=require; global.require=函数(){ console.log('require',参数); 返回_req.apply(这是参数); }; const Module=require

我试图找出如何拦截所有节点的
require
调用,以便记录它们

关于这一点,已经有一些问题,但建议的方法在拦截我的所有require调用时失败,即我想深入拦截require调用,也就是在我所需的模块内进行的调用,以及它们所需的模块等等

到目前为止,我已经尝试了以下3种方法:

const\u req=require;
global.require=函数(){
console.log('require',参数);
返回_req.apply(这是参数);
};
const Module=require('Module');
常数负载=模块负载;
模块。_负载=功能(){
console.log('require',参数);
return _load.apply(这是参数);
};
const Module=require('Module');
常数_wrap=Module.wrap;
Module.wrap=函数(脚本){
const prepend=`console.log(module.id);`;
脚本=预结束+脚本;
返回_wrap(脚本);
};
但是没有一个为我工作


我在Electron v5内部运行的Node.js v12下。

为了实现类似的功能(
拦截所有require调用
),很可能需要包装
模块.prototype.require

Module.prototype.require = wrapWithYOURInterceptor(params);
这是在各种“拦截”
require
libs中完成的,如您所见:

  • :

  • :


  • 您也可以只使用这些lib,而不使用新的lib等。

    我尝试了
    拦截require
    ,但它无法拦截我的所有require调用。鉴于
    requirehook
    以类似的方式工作,我想它对我也不起作用。