nodejs 中的require加载模块的顺序

首先nodejs中加载模块的书写方式:

1. require("fs")  内核模块

2. require("./demo")或require("../demo")或require("/demo")相对地址模式

3. require("demo") 类似内核模块写法

require函数在执行的时候顺序为(忽略调缓存):

1. 首先查看是否是内核,是就直接返回

2. 解析要查找的目录

    如果是相对地址模式,接卸的结果就是用户指定的地址的绝对地址形式(只有一个地址)

    如果是类似内核模块的写法,那么解析出来的地址就是一个数组,假如我的环境:

        win10,  登录用户名为jackletter,nodejs安装在d:\nodejs, 并配置了环境变量node_path=d:\node_path; ,执行的脚本为node c:\a\b\a.js

 那么解析的结果为:

    c:\a\b\node_modules

    c:\a\node_modules

    c:\node_modules

    d:\node_path

    c:\users\jackletter\.node_modules

    c:\users\jackletter\.node_libraries

    d:\nodejs\lib\node

3. 对解析到的目录依次查找

    3.1 加上后缀.js|.json|.node去查找文件,找到就返回

    3.2 找不到的就把这个路径当成文件夹

            在这个文件夹里找package.json里的main:"ko.js"字段,找到了就返回这个指定的脚本

            失败后直接在这个文件夹里查找index.js|index.json|index.node文件,找到了返回,找不到就下一条路径

            

猜你喜欢

转载自blog.csdn.net/u010476739/article/details/80925128