Skip to content

Latest commit

 

History

History
33 lines (21 loc) · 913 Bytes

File metadata and controls

33 lines (21 loc) · 913 Bytes

LUA模块

[TOC]

require机制

加载策略

graph TD
requre>加载文件xxx]-->is_loaded{查找table package.loaded<br>看xxx是否被加载过?}
is_loaded -.yes.-> return(返回)
is_loaded -.no.-> preloader(执行预加载器)
preloader-->lualoader(执行lua加载器)
Loading
  1. 查找package.loaded表,检测是否被加载过;如果被加载过,require返回保存的值。
  2. 如果没有加载过,按照以下顺序运行加载器执行加载:
    • 预加载器,执行package.preload[modname],一些特殊模块会有预加载器
    • lua加载器,查找前面介绍的package.path
    • c加载器,查找package.cpath
    • 一体化加载器

TODO

参考