模块查找机制
优先从缓存加载,再从核心模块,然后路径形式的文件模块,最后才是第三模块
node_modules/xxx/
node_modules/xxx/package.json
node_modules/xxx/package.json main
如果没有找到main 就查找目录下的 index 文件 (index文件是个备胎)
如果以上条件都不成立就会往上级目录查找node_modules文件夹
如果直到当前路径根目录还没查找到的话,最后报错:
can not find module xxx;
路径形式的文件模块
./当前目录, ./不可省略
../上一级目录 ../不可省略
/xxx 几乎不用
首位的/表示当前文件模块所属磁盘根路径
.js后缀名可以省略
核心模块
核心模块的本质也是文件模块
核心模块的文件被编译到了二进制文件夹中,我们只需要按名字来加载就可以了;
第三方模块
只要是第三方的模块都需要使用 npm install 来下载
使用的时候就可以通过 require(‘包名’)的方式来进行加载才可以使用
不可能有核心模块和第三方模块的名字是相同的