lua热更新机制

lua 的热更新机制主要由require(),来决定通过package.loaded[moudle_name] = nil 强制删除,当前内存中的,然后require()加载该模块,但是这里有个问题,这样的热更新只能热更新新的引用,所以先用一个值保存旧的模块,再引用的新的模块逐渐替换,之前引用该模块的文件可以热更新掉,贴代码:

 

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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值