第一次通过你设置全球
require
函数转换为新函数,第二次保存时
你的新功能
并将其设置为另一个实例。Lua的情况是这样的:
local require_original1 = require
function require(name, ...)
print('Hello World')
local val = table.pack(require_original1(name, ...))
return table.unpack(val,1,val.n)
end
local require_original2 = require -- now the function above
function require(name, ...) -- redefine yet again
print('Hello World')
-- require_original2 is your function above
local val = table.pack(require_original2(name, ...))
return table.unpack(val,1,val.n)
end
您只需跟踪原始的require函数一次,或者使用egor's answer之类的卸载函数,或者将其更改为只分配一次的全局函数:
require_original = require_original or require