javascript - 覆盖require函数

标签 javascript node.js require

是否可以覆盖 global 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);
};

关于javascript - 覆盖require函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27948300/

相关文章:

javascript - 每当用户单击动态 url ReactJS 时如何渲染到页面?

node.js - Node module.exports 像 this 关键字一样引用自己的函数?

node.js - 使用多个 Heroku 应用程序对 Nginx 进行负载平衡

javascript - 防止 iOS 5.1 上打开键盘的默认操作

javascript - 使用canvas api绘制重复的正弦波

javascript - 如何在拖放区添加默认图像?

javascript - 使用 vtune 和 jitprofiling.h 支持编译 NodeJS

Node.js 异步模块需要

javascript - 含义 - "//= require angular/angular"

javascript - 如何正确记录 require module.exports 以便文档不丢失?