1. 当模块拥有路径但没有后缀时
require('./find');
require
方法根据模块路径查找模块,如果是完整路径,直接引入模块- 如果模块后缀省略,先找同名JS文件再找同名JS文件夹,没有同名文件夹则报错
- 如果找到了同名文件夹,找文件夹中的
index.js
- 如果文件夹中没有
index.js
,就会去当前文件夹中的package.json
文件中查找main
选项中的入口文件 - 如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到
2. 当模块没有路径且没有后缀时
require('find');
Node.js
会假设它是系统模块Node.js
会去node_modules
文件夹中- 首先看是否有该名字的JS文件
- 再看是否有该名字的文件夹
- 如果是文件夹看里面是否有
index.js
- 如果没有
index.js
查看该文件夹中的package.json
中的main
选项确定模块入口文件 - 否则,找不到则报错