我可以覆盖webpack中require()返回的值吗?

时间:2016-10-15 01:26:40

标签: javascript webpack require

出于测试目的,我想使用require('whatever.js')返回任意内容,而不是让它实际加载文件。

// made up code
var AAA = {}; 
require.setFor('./whatever.js', AAA); 
var BBB = require('./whatever.js'); 
console.assert(AAA === BBB);

这可能吗?

1 个答案:

答案 0 :(得分:1)

只需覆盖require功能:

var realRequire = require;
require = function (what) {
    return realRequire('mocked-' + what);
}

您也可以为您的模拟使用查找表,如果不存在模拟,则调用realRequire()