commonJS
援笔赋惊鸿
人生总是在转角处发现更多的风景
展开
-
require 加载原理
module : 在 node 中每一个 js 文件都是一个 module ,module 上除了保存了 exports 等信息,还有 loaded 表示该模块是否被加载:false表示没有加载,true 为已加载Module : 以nodejs 为例,整个系统运行以后,会用 Module 缓存每一个模块加载的信息require 大致流程:1. require 会接收一个参数——文件标识符,然后分析定位文件,分析过程我们上述已经讲到了,加下来会从 Module 上查找有没有缓存,如果有缓存..原创 2021-11-26 18:06:17 · 789 阅读 · 0 评论 -
Commonjs 和 Es Module
Commonjs的特性:CommonJS 模块由 JS 运行时实现。 CommonJs 是单个值导出,本质上导出的就是 exports 属性。 CommonJS 是可以动态加载的,对每一个加载都存在缓存,可以有效的解决循环引用问题。 CommonJS 模块同步加载并执行模块文件。Es module的特性: ES6 Module 静态的,不能放在块级作用域内,代码发生在编译时。 ES6 Module 的值是动态绑定的,可以通过导出方法修改,可以直接访问修改结果。 ..原创 2021-11-15 17:59:12 · 1911 阅读 · 0 评论 -
require 加载流程
nodejs中对标识符的处理原则:首先像 fs ,http ,path 等标识符,会被作为 nodejs 的核心模块。 ./和../作为相对路径的文件模块,/作为绝对路径的文件模块。 非路径形式也非核心模块的模块,将作为自定义模块。核心模块的处理:核心模块的优先级仅次于缓存加载,在Node源码编译中,已被编译成二进制代码,所以加载核心模块,加载过程中速度最快。路径形式的文件模块处理:已./,../和/开始的标识符,会被当作文件模块处理。require()...原创 2021-11-11 17:47:22 · 480 阅读 · 0 评论