在文件/home/somebody/workspace/somemodule.js中第一行引用了一个模块:require(‘othermodule‘),请问require查找模块的顺序是:
B. /home/somebody/workspace/node_modules/othermodule. Js
C.CORE MODULES named othermodule
D./home/somebody/node_modules/othermodule/index.js
C D A B
C B D A
C B A D
C D B A
三、文件模块路径分析
3、按照这个规则一直往父目录搜索直到到根目录下的node_modules
四、完成路径分析后,进行文件定位
1、情况1:当前路径命中的是一个文件
(1)有扩展名 => 找到了
(2)没有扩展名:按照.js,.node,.json这个顺序逐个进行尝试
2、情况2:当前路径命中的是一个目录
(1)首先会在命中的目录下寻找package.json这个文件并用JSON.parse进行解析,取出json文件中main属性的值,作为命中的文件
(2)如果找不到package.json或者对应的main属性,那么会用这个目录下面index文件作为命中文件,依旧是按照.js,.node,.json这个顺序逐个进行尝试
所以答案是: C B A D