【Node】模块加载过程
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
一.概述 模块是作为ELF对象文件存放在文件系统中的,并通过执行insmod程序链接到内核中.对于每个模块,系统都要分配一个包含以下数据结构的内存区. 一个module对象,表示模块名的一个以null ...
- Node 模块加载汇总
Nodejs 模块大概可分为4种: a) builtin module Nodejs中以C++形式提供的文件模块. b) constant module Nodejs中定义常量的文件模块. c) na ...
- FreeSwitch 的初始化及其模块加载过程
FS 主函数main() Freeswitch的主函数是在文件switch.c中定义的,该文件的260行是整个程序的入口,主函数主要完成的功能是包括,命令行解析,初始化apr库,构建全局内存池,模块加 ...
- node --- 模块加载机制
1. Node.js中模块加载机制 1.1 模块查找规则-当模块拥有路径但没有后缀时 require('./find.js'); require('./find'); require方法根据模块路径查 ...
- FreeSwitch Sofia模块加载过程
模块加载入口函数mod_sofia_load(),首先一系列switch_event_reserve_subclass()调用,注册事件类型.然后调用switch_queue_create( ...
- node模块加载机制。
转载于:https://www.cnblogs.com/l8l8/p/9079747.html
- linux ipv6模块,有关Linux ipv6模块加载失败的问题
有关Linux ipv6模块加载失败的问题 同事一个SUSE11sp3环境配置ipv6地址失败,提示不支持IPv6,请求帮助,第一反应是应该ipv6相关内核模块没有加载. 主要检查内容: ipv6地址 ...
- seaJS 模块加载过程分析
先看一个seajs的官方example, 以下以seajs.use('main')为例, 解析加载mod main的过程 //app.html seajs.use("main") ...
- seajs动态加载js原理_seaJS 模块加载过程分析
先看一个seajs的官方example, 以下以seajs.use('main')为例, 解析加载mod main的过程 //app.html seajs.use("main") ...
最新文章
- html5 canvas 加载图片
- CUDA系列学习(四)Parallel Task类型 与 Memory Allocation
- php 提交表单跳转页面,form表单页面跳转方式提交练习
- uniapp的目录结构反思与整理 app.vue【base】pages.json【配置】main.json【框架入口文件】
- Java并发编程实战————并发技巧小结
- 华为天才少年1万元自制机械臂:能给葡萄缝针!
- 端到端O-RAN用例测试
- php提供的魔术常量
- TensorFlow2.0:误差计算
- “越南QQ”——Zing Chat试玩
- 收下这份实操案例,还怕不会用Jmeter接口测试工具?!
- 电大计算机网络本作业1,2017年最新电大计算机网络作业1-3答案.doc
- CMPP3.0-超长短信
- 分布式数据同步工具之DataX Web的基本使用
- wordpress企业主题安装
- Winform(XtraReport)实现打印方法(转载)(只是自我参考有错误的地方欢迎各位大佬前来交流心得)...
- 第八届山东省赛题 I Parity check 【找规律】
- BUPT-CSAPP 期末复习书后参考题节选及评注
- Vue element 自定义表单验证(验证联系方式、邮箱、邮政编码)
- 系统找不到C:\ProgramData\Oracle\Java\javapath\java.exe问题及解决方案