lua
热更新
Lua的 require(modelname) 把一个lua文件加载存放到package.loaded[modelname]。
当我们加载一个模块的时候,会先判断是否在package.loaded中已存在,若存在则返回改模块,不存在才会加载(loadfile),防止重复加载。
function reloadUpdate(module_name)
local old_module = package.loaded[module_name] or {}
package.loaded[module_name] = nil
require(module_name)
local new_module = package.loaded[module_name]
for k,v in pairs(new_module) do
old_module[k] = v
end
package.loaded[module_name] = old_module
return old_module
end