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