node --- > 模块加载机制
程序员文章站
2022-05-30 14:04:54
...
1. Node.js中模块加载机制
1.1 模块查找规则-当模块拥有路径但没有后缀时
require('./find.js');
require('./find');
- require方法根据模块路径查找模块,如果是完整路径,直接进入模块
- 如果模块后缀省略,先找同名JS文件再找同名JS文件夹
require('./find');
// 以上会先找到命令行目录下的find.js文件.若找到则返回.否则寻找同名文件夹.
- 如果找到同名文件夹.若文件夹中存在
package.json
,且package.json
中存在main
属性.则会执行main属性对应的值 - 否则,找到文件夹中的index.js
- 如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到
1.2 模块查找规则-当模块没有路径且没有后缀时
require('find');
- Node.js会假设它是系统模块
- Node.js会去node_modules文件夹中
- 看是否有该名字的JS文件
- 再看是否有改名字的文件夹
- 如果是文件夹,检查是否有
package.json
.若有,从main中找到对应的js文件 - 如果没有会查找有没有index.js文件.
- 都没有报错