1、JS/JSON/Node模块

Module.runMain或Module.require

(1)路径解析

(1)内置JS模块:直接返回

(2)构造查找路径

(1)模块名/绝对路径:parentPaths+globalPaths

(2)相对路径-无父模块:'.'.node_modulesPaths+'.'+globalPaths

(3)相对路径-有父模块:

(3)查找模块路径(按照查找路径)

(1)

(2)加载模块

(1)cachedModule

(2)内置JS模块 NativeModule.require

(3)外部模块 module.load

(1)设置模块路径的node路径(node_modules)

(2)根据扩展名解析(.js/.json/.node)

(1).js        readFileSync

Module._compile:封装->加载

(2).json    JSON.parse

(3).node  process.dlopen

Module.globalPaths:

HOME/.node_libraries

HOME/.node_modules

NODE_PATH

NODE_BIN/../../lib/node

Module.paths:

/..../..../..../node_modules

/..../..../node_modules

/..../node_modules

/node_modules

2、C++模块

process.binding(modname)->Binding->binding_cache->get_builtin_module->initialize

【Node】模块加载过程相关推荐

  1. 模块加载过程代码分析1

    一.概述 模块是作为ELF对象文件存放在文件系统中的,并通过执行insmod程序链接到内核中.对于每个模块,系统都要分配一个包含以下数据结构的内存区. 一个module对象,表示模块名的一个以null ...

  2. Node 模块加载汇总

    Nodejs 模块大概可分为4种: a) builtin module Nodejs中以C++形式提供的文件模块. b) constant module Nodejs中定义常量的文件模块. c) na ...

  3. FreeSwitch 的初始化及其模块加载过程

    FS 主函数main() Freeswitch的主函数是在文件switch.c中定义的,该文件的260行是整个程序的入口,主函数主要完成的功能是包括,命令行解析,初始化apr库,构建全局内存池,模块加 ...

  4. node --- 模块加载机制

    1. Node.js中模块加载机制 1.1 模块查找规则-当模块拥有路径但没有后缀时 require('./find.js'); require('./find'); require方法根据模块路径查 ...

  5. FreeSwitch Sofia模块加载过程

         模块加载入口函数mod_sofia_load(),首先一系列switch_event_reserve_subclass()调用,注册事件类型.然后调用switch_queue_create( ...

  6. node模块加载机制。

    转载于:https://www.cnblogs.com/l8l8/p/9079747.html

  7. linux ipv6模块,有关Linux ipv6模块加载失败的问题

    有关Linux ipv6模块加载失败的问题 同事一个SUSE11sp3环境配置ipv6地址失败,提示不支持IPv6,请求帮助,第一反应是应该ipv6相关内核模块没有加载. 主要检查内容: ipv6地址 ...

  8. seaJS 模块加载过程分析

    先看一个seajs的官方example,  以下以seajs.use('main')为例, 解析加载mod main的过程 //app.html seajs.use("main") ...

  9. seajs动态加载js原理_seaJS 模块加载过程分析

    先看一个seajs的官方example,  以下以seajs.use('main')为例, 解析加载mod main的过程 //app.html seajs.use("main") ...

最新文章

  1. html5 canvas 加载图片
  2. CUDA系列学习(四)Parallel Task类型 与 Memory Allocation
  3. php 提交表单跳转页面,form表单页面跳转方式提交练习
  4. uniapp的目录结构反思与整理 app.vue【base】pages.json【配置】main.json【框架入口文件】
  5. Java并发编程实战————并发技巧小结
  6. 华为天才少年1万元自制机械臂:能给葡萄缝针!
  7. 端到端O-RAN用例测试
  8. php提供的魔术常量
  9. TensorFlow2.0:误差计算
  10. “越南QQ”——Zing Chat试玩
  11. 收下这份实操案例,还怕不会用Jmeter接口测试工具?!
  12. 电大计算机网络本作业1,2017年最新电大计算机网络作业1-3答案.doc
  13. CMPP3.0-超长短信
  14. 分布式数据同步工具之DataX Web的基本使用
  15. wordpress企业主题安装
  16. Winform(XtraReport)实现打印方法(转载)(只是自我参考有错误的地方欢迎各位大佬前来交流心得)...
  17. 第八届山东省赛题 I Parity check 【找规律】
  18. BUPT-CSAPP 期末复习书后参考题节选及评注
  19. Vue element 自定义表单验证(验证联系方式、邮箱、邮政编码)
  20. 系统找不到C:\ProgramData\Oracle\Java\javapath\java.exe问题及解决方案

热门文章

  1. Unity内置的三套消息发送机制的应用实例
  2. java中的jdk切换(无需卸载原有jdk)
  3. 页面传值:属性,协议,Block传值
  4. convirt2.5在虚拟机上安装笔记
  5. 【译】RAID的概念和RAID对于SQL性能的影响
  6. Boost asio学习笔记之二—— 网络编程
  7. FutureTask的使用
  8. 关于jQuery.click()函数
  9. .net 刷新页面防止表单二次提交
  10. 基于java的http服务器