lua檔案的載入和解除安裝~package.loaded和require配合讓一個檔案更新後重新載入
阿新 • • 發佈:2019-02-07
用require函式只能載入一次,因為它的特性是:
1、require函式會搜尋目錄載入檔案
2、require會判斷是否檔案已經載入避免重複載入同一檔案
而這個特性二,雖然我們可能知道這兩個特性,但是潛意識裡面常常把這個特性二給忽視掉了.
直到哪天我們需要反覆載入同一個lua檔案,但是沒有實現自己想要效果的時候,才會發現這個特性二的存在感特別強!
也許有的小夥伴,會有疑問,為什麼要反覆載入啊?載入一次不就能用了麼?
當我有一些特殊的需求的時候,就可能會需要反覆載入某個lua檔案,例如我的檔案lua檔案動態地改變了,或者一些其他特殊原因.
那麼,如何實現反覆載入一個lua檔案?
答案是:二次載入前加這一句package.loaded[luafile] = nil就ok了
例如我們需要反覆地required(‘test.lua’),那麼第二次載入時的程式碼如下:
package.loaded[‘test.lua’] = nil
required(‘test.lua’)