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 小时前
短思考第261天,浪费时间的十个低效行为,看看你中了几个?
前端·ai编程
Swift社区2 小时前
React Navigation 生命周期完整心智模型
前端·react.js·前端框架
若梦plus2 小时前
从微信公众号&小程序的SDK剖析JSBridge
前端
用泥种荷花2 小时前
Python环境安装
前端
Light602 小时前
性能提升 60%:前端性能优化终极指南
前端·性能优化·图片压缩·渲染优化·按需拆包·边缘缓存·ai 自动化
Jimmy2 小时前
年终总结 - 2025 故事集
前端·后端·程序员
烛阴2 小时前
C# 正则表达式(2):Regex 基础语法与常用 API 全解析
前端·正则表达式·c#
roman_日积跬步-终至千里3 小时前
【人工智能导论】02-搜索-高级搜索策略探索篇:从约束满足到博弈搜索
java·前端·人工智能
GIS之路3 小时前
GIS 数据转换:使用 GDAL 将 TXT 转换为 Shp 数据
前端
多看书少吃饭3 小时前
从Vue到Nuxt.js
前端·javascript·vue.js