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

相关推荐
努力学习的少女12 小时前
对SparkRDD的认识
开发语言·前端·javascript
LYFlied12 小时前
Webpack 深度解析:从原理到工程实践
前端·面试·webpack·vite·编译原理·打包·工程化
苏打水com12 小时前
第十二篇:Day34-36 前端工程化进阶——从“单人开发”到“团队协作”(对标职场“大型项目协作”需求)
前端·javascript·css·vue.js·html
知了清语12 小时前
为天地图 JavaScript API v4.0 提供 TypeScript 类型支持 —— tianditu-v4-types 正式发布!
前端
程序员Sunday12 小时前
为什么 AI 明明写后端更爽,但却都网传 AI 取代前端,而不是 AI 取代后端?就离谱...
前端·后端
之恒君13 小时前
React 性能优化(方向)
前端·react.js
3秒一个大13 小时前
Vue 任务清单开发:数据驱动 vs 传统 DOM 操作
前端·javascript·vue.js
an869500113 小时前
vue自定义组件this.$emit(“refresh“);
前端·javascript·vue.js
Avicli13 小时前
Gemini3 生成的基于手势控制3D粒子圣诞树
前端·javascript·3d
GinoWi13 小时前
HTML标签 - 列表标签
前端