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

相关推荐
青莲8433 分钟前
Android 事件分发机制 - 事件流向详解
android·前端·面试
musashi3 分钟前
用 Electron 写了一个 macOS 版本的 wallpaper(附源码、下载地址)
前端·vue.js·electron
满天星辰5 分钟前
Typescript之类型总结大全
前端·typescript
JFChen5 分钟前
Web 仔用 Node 像 Java 一样写后端服务
前端
XiaoSong9 分钟前
React useState 原理和异步更新
前端·react.js
徐徐子9 分钟前
从vue3 watch开始理解Vue的响应式原理
前端·vue.js
眯眼因为很困啦12 分钟前
GitHub Fork 协作完整流程
前端·git·前端工程化
whisper15 分钟前
🚀 React Router 7 + Vercel 部署全指南
前端
还债大湿兄25 分钟前
huggingface.co 下载有些要给权限的模型 小记录
开发语言·前端·javascript
叶落无痕5225 分钟前
Electron应用自动化测试实例
前端·javascript·功能测试·测试工具·electron·单元测试