文件加载顺序:

st=>start: 开始require
isfc=>condition: 是否在文件缓冲区
isnf=>condition: 是否是原生模块
ff=>operation: 查找文件模块
lfm=>operation: 根据扩展名载入模块
cfm=>operation: 缓存文件模块
isnc=>condition: 是否在原生模块缓存区中
lnf=>operation: 加载原生模块
cnf=>operation: 缓存原生模块
e=>end: 返回exports

st->isfc
isfc(yes)->e
isfc(no)->isnf(no)->ff->lfm->cfm->e
isnf(yes)->isnc(yes)->lnf->cnf->e
isnc(no)->e

require方法接受以下几种参数的传递: http、fs、path等,原生模块。 ./mod或../mod,相对路径的文件模块。 /pathtomodule/mod,绝对路径的文件模块。 mod,非原生模块的文件模块。