Node.js中模块加载机制
程序员文章站
2022-06-30 22:55:11
...
Node.js中模块加载机制
模块查找规则
require('./find.js');
require('./find');
当模块拥有路径没有后缀时
1.require方法根据模块路径查找模块,如果是完整路径,直接引入模块
2.如果模块后缀省略,先找同名JS文件再找同名JS文件夹
3.如果找到了文件夹,找文件夹里的index.js
4.如果文件夹中没有index.js就回去当前文件夹中的package.js中查找main选项中的入口文件
5.如果找指定的入口文件不存在或者没有指定文件入口就会报错,模块没有被找到
举例:
(1)模块路径完整
不加后缀也可以
把find.js改名find.js.bak后,报错
因为没有同名js文件也没有同名js文件夹
此时新建find文件夹
新建index.js文件,
并npm init初始化.json
将main改为main.js
新建main.js文件
然后控制台输出node require.js
即:
当模块没有路径且没有后缀时
require('find');
1.Node会假设他是系统模块
2.Node.js会去node_modules文件夹中
3.首先看是否有该名字的js文件
4.再看是否有该名字的文件夹
5.如果是文件夹,看是否有index.js
6.如果没有,产看package.json中的main选项确定模块入口文件
7.找不到报错
举例:
新建node_moduleswen文件夹,找同名js文件
将同名js文件改名,新建同名文件夹,新建index.js
初始化.json
将main入口改为b.js,执行
如果找不到
这就是: