由require(module_name)来决定,
通过package.loaded[module_name] = nil 强制删除,然后再require(module_name),当然在更新之前必须要先保存原来模块,local old_module = _G[module_name],然后将引用的模块逐一替换之前引用该模块的可以热更替换掉
//贴代码
function reload_moudle(moudle_name)
local old_name = _G[moudle_name] --保存引用的
package.loaded[moudle_name] = nil
require(moudle_name) --加載新的
local new_name = _G[moudle_name]
for k,v in pairs(new_name) do
old_name[k] =v --引用成新的
end
package.loaded[moudle_name] = old_name --重新添加
end