1.核心模块

    模块名

2.第三方模块

    模块名

3.自定义模块

    路径

4.优先从缓存加载

    如果使用到的文件已经在前面被加载过了,就直接从缓存里找结果,不需要重新加载,提高模块的加载效率

5.判断模块标识

    1)核心模块:本质也是文件,已经被编译到二进制文件中,只需要通过名字加载就可以了
    2)第三方模块:先需要下载第三方包,再通过require加载这个包,这个包在node_modules目录下,最终加载的还是文件
            查找规则:该目录下的node_modules下查找,如果没有则在package.json文件中记录了第三方模块的入口,如果package.json文件不存在或者main的值是空的就会自动找该目录下的index.js文件,如果以上条件都不成立,则会进入上一级目录中node_modules中查找,如果还没有就去上上一级直到根目录,磁盘根目录都没有的话就会报错

    3)自定义模块
    模块的标识就是require的参数