Node.js基础---加载机制

模块的加载机制

1. 优先成缓存中加载

模块在第一次加载后会被缓存,意味着多次调用 require() 不会导致模块代码被多次执行

注意:无论是什么模块都会优先从缓存内加载,以提高加载效率

2. 内置模块的加载机制

内置模块是 Node.js官网提供的模块,其加载优先级最高

3. 自定义模块的加载机制

必须以 ./ 或 ../ 开头的路径标识符,如果没有,则node 会当成内置模块或第三方模块加载

如果省略文件的扩展名,Node.js会按顺序分别尝试加载以下的文件

4. 第三方模块的加载机制

如果传递的是第三方模块(不是内置模块,也没有以 ./ 开头),则会从当前模块的父目录开始尝试从 /node_modulles 文件夹中加载第三模块

如果没有找到对应的第三方模块,则移动到再上一层父目录中进行加载,直到文件系统的根目录

5. 目录作为模块

当把目录作为模块标识符,传递给 require() 进行加载的时候,有三种加载方式

  1. 在被加载的目录下找 package.json 的文件,并找 main 属性,作为 require() 加载入口

  2. 如果没有,或者main不存在或无法解析,则会试图加载目录下的 index.js 文件

  3. 如果以上两步都失败了,则会打印错误消息

相关推荐
南果梨1 分钟前
OpenClaw 完整教程!从安装到使用(官方脚本版)
前端·git·开源
大雨还洅下3 分钟前
前端手写: new操作符
前端
hqk17 分钟前
鸿蒙项目实战:手把手带你实现 WanAndroid 布局与交互
android·前端·harmonyos
是糖糖啊1 小时前
OpenClaw 从零到一实战指南(飞书接入)
前端·人工智能·后端
Despupilles1 小时前
第三篇、基本骨架结构
前端
swipe1 小时前
从原理到手写:彻底吃透 call / apply / bind 与 arguments 的底层逻辑
前端·javascript·面试
踩着两条虫1 小时前
从设计稿到代码:VTJ.PRO 的 AI 集成系统架构解析
前端·vue.js·人工智能
Mapmost1 小时前
从“雕琢”到“生成”:AIGC正在重塑数字孪生世界
前端
掘金一周1 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了 | 掘金一周 3.5
前端·人工智能·agent
JasonYin1 小时前
ViewModel 知识体系思维导图
前端