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. 如果以上两步都失败了,则会打印错误消息

相关推荐
楷哥爱开发3 小时前
演唱会自动化抢票如何提高成功率?票务住宅IP与配置指南
服务器·前端·php
发现一只大呆瓜3 小时前
Vite 兼容降级全解:语法降级、Polyfill 原理与 legacy 插件底层机制
前端·面试·vite
Shirley~~4 小时前
CC Switch mac安装
前端·ai编程
奇奇怪怪的问题4 小时前
学习ts笔记(二):属性修饰符,泛型,接口
前端·typescript
明月_清风4 小时前
全面了解 Vercel:前端开发者的高效武器库与实战指南
前端·next.js
NiceCloud喜云4 小时前
Claude API PDF 文档问答实战:从原生解析到分页引用的完整方案
java·服务器·前端·网络·数据库·人工智能·pdf
东方小月4 小时前
vibecoding实战:用 Claude Code 从0到1开发一个 Claude Code
前端·人工智能·架构
marsh02064 小时前
54 openclaw钩子函数使用:在框架生命周期中注入自定义逻辑
java·前端·spring
TechExplorer3655 小时前
npm install 日志目录
前端·npm·node.js
笔优站长5 小时前
从 Vue 2 到 Vue 3:我把 vue-aliplayer-v2 重构成了一个更现代的阿里云播放器组件
前端·vue.js