当前位置: 首页 > 面试题库 >

覆盖require函数

万铭
2023-03-14
问题内容

是否有可能覆盖 全局 require功能,从而在一定process程度上影响 全局 功能?

据我所知,该require函数在包装NodeJS脚本的函数中作为参数提供:

(function (..., require, __dirname) { // something like this
   // The wrapped code
})(...);

有什么方法可以修改require功能吗?

(function () {
    var _require = require;
    require = function () {
        console.log("...");
        _require.apply(this, arguments);
    };
})();

这可能只会影响脚本所在的脚本。

我们如何在流程级别进行修改?


问题答案:
var Module = require('module');
var originalRequire = Module.prototype.require;

Module.prototype.require = function(){
  //do your thing here
  return originalRequire.apply(this, arguments);
};


 类似资料:
  • void fl_overlay_rect(int x, int y, int w, int h); void fl_overlay_clear(); 前者与先前颜色异或操作,后者清楚异或操作 使用该函数非常的巧妙,你应该在控件中有handle()和draw()函数,draw()应该调用fl_overlay_clear()在做任何事情之前。Handle()函数应该调用window()->make_

  • 我经常使用助手,我只是向用户返回带有消息的数据。现在我必须包括超文本传输协议状态代码,但我不想更改每个响应(这很可能是坏的)。 因此,我试图通过创建自己的

  • 问题内容: 场景: 该代码不起作用,而且我找不到像继承那样来调用trait函数的方法。我打过电话,,,和以下内容: 没用。 有没有办法使它起作用,或者我必须完全重写特质函数,它比这要复杂得多:) 问题答案: 您的最后一个快到了: 特质不是阶级。您不能直接访问其成员。基本上只是自动复制和粘贴…

  • 问题内容: 我所知道的是,编译器在字节码中编写了一个默认的无参数构造函数。但是,如果我们自己编写,则该构造函数会自动调用。这种现象是构造函数压倒一切的吗? 问题答案: 您所描述的不是最重要的。如果您未指定默认构造函数,则编译器将创建一个默认构造函数。如果是子类,它将调用默认的父构造函数(super()),还将所有实例变量初始化为由该类型的默认值确定的默认值(数字类型为0,布尔值为false,对象为

  • 问题内容: 有什么方法可以防止子类覆盖基类中的方法? 我的猜测是没有,但是我来自.NET界,并且我正试图使我的API尽可能健壮,因此,任何输入都将不胜感激。 可以强制执行吗?我知道编译器无济于事,所以也许通过一些运行时检查来解决?还是这不是一种处理事情的Python方法? 问题答案: 您是对的:您的尝试与Python的结构及其文化背道而驰。 记录您的API,并教育您的用户如何使用它。这是他们的程序

  • 下面是在我的一个组件上运行的输出: 请注意,不是100,测试失败。(覆盖门槛不是我设置的。我不会设定这么高的门槛。) 问题是,Jest没有告诉我哪些是未覆盖的线条。此外,我也很难理解的含义。我甚至找不到这个的官方文档。 感谢您的帮助!