欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)模块路径完整
Node.js中模块加载机制

Node.js中模块加载机制
Node.js中模块加载机制
不加后缀也可以
Node.js中模块加载机制
把find.js改名find.js.bak后,报错
Node.js中模块加载机制
因为没有同名js文件也没有同名js文件夹

此时新建find文件夹
新建index.js文件,
并npm init初始化.json
将main改为main.js
新建main.js文件
然后控制台输出node require.js
Node.js中模块加载机制
Node.js中模块加载机制
Node.js中模块加载机制
即:
Node.js中模块加载机制

当模块没有路径且没有后缀时

require('find');

1.Node会假设他是系统模块

2.Node.js会去node_modules文件夹中

3.首先看是否有该名字的js文件

4.再看是否有该名字的文件夹

5.如果是文件夹,看是否有index.js

6.如果没有,产看package.json中的main选项确定模块入口文件

7.找不到报错
举例:
新建node_moduleswen文件夹,找同名js文件
Node.js中模块加载机制
将同名js文件改名,新建同名文件夹,新建index.js
Node.js中模块加载机制
初始化.json
Node.js中模块加载机制
将main入口改为b.js,执行
Node.js中模块加载机制
如果找不到
Node.js中模块加载机制
这就是:
Node.js中模块加载机制