node.js 3.3 模块的加载机制

一、模块的加载机制

模块在第一次加载后会被缓存。这也意味着,多次调用 require 不会导致模块中的代码被执行多次
不论 node内置模块、用户自定义模块 还是 第三方模块,都会优先从缓存中加载,从而提高模块的加载效率。

二、内置模块的加载机制

内置模块是 node.js 官方提供的模块。三种模块中,内置模块的优先级最高
如果第三方模块和内置模块名称一样,会加载内置模块。

三、自定义模块的加载机制

1、必须指定以 ./../ 开头的路径标识符
使用 require 加载自定义模块时,必须指定以 ./../ 开头的路径标识符。
如果没有指定 ./ 或 …/ ,会被当成 内置模块 或者 第三方模块 进行加载。

2、补全扩展名的顺序
如果在使用 require() 导入自定义模块时,省略了文件拓展名,Node.js 会按顺序分别尝试加载以下的文件:

  • 按确切的文件名加载;
  • 补齐 .js 扩展名加载;
  • 补齐 .json 扩展名加载;
  • 补齐 .node 扩展名加载;
  • 如果都加载失败,则报错

四、第三方模块的加载机制

在这里插入图片描述

五、目录作为模块

当把目录作为模块标识符,传递给 require() 加载时,有三种加载方式:
(1)在加载路径下找 package.json,从中找 main 属性,作为入口文件;
(2)如果没有 package.json 或者 文件中没有 main 属性,则尝试加载路径下的 index.js;
(3)如果以上两步都失败了,则 Node.js 会在终端打印错误消息,报告模块的缺失:Error: Cannot find module ‘xxx’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值