Skip to content

Tangxinwei/LuaReloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

1.支持在文件的其他地方缓存function的热更 例如 A.lua local B = require "B" local A = {} A.f = B.f return A

B.lua
local B = {}
function B.f()
end
return B

这种情况可以正确更新A.f

2.支持upvalue的自动查找 例如A.lua local a, b function A() return a end function B() return b end 如果将function A() 改为 return a,b 会自动把A和B的upvalue都对应上

3.不支持用function作为key(这种function不会被热更新)

4.支持table的嵌套 local c = {} local a = 1 function c.F() return a end c.__NeedReload = true function A() return c end 这种情况下,c是A的upvalue,a是c.F的upvalue,一般是遍历不到c.F从而导致upvalue a的丢失 如果定义了c.__NeedReload,此时热更的时候会遍历c

5.支持部分更新 可以仅仅更新指定package的部分函数 例如Reloader.MyReload("Test",[[ local Test = {} local b function Test.A() return b end return Test ]]) 这种情况下为了能对应upvalue b的值,要么A原本就是Test里面的一个函数 要么需要多加几个函数来辅助判断upvalue b到底需要映射到哪个upvalue 当然如果Test这个文件里面名字为b的upvalue只有一个,那就不需要上面的限制条件了

About

lua reloader function

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages