require函数的内部原理执行的流程

简介: require函数的内部原理执行的流程
/**
 * require 的原理
 */
// function require(modulePath){
//    1. 把路劲转为绝对地址, 直接到磁盘的那种 , 这里又涉及到,路径转化问题
//            1-1: 传入的是绝对路径,直接不用转
//            1-2: 传入的是./ 或者 ../ 开头的查找模块的绝对路径
//            1-3: 传入的是直接一个路径开头的,先判断传入的是否为一个node的内置模块,如果是内置模块直接使用内置模块,如果不是内置模块,会在当前层的node_modules里面查看看看能不能找到,如果找不到去上一层的node_modules里面查看,直到找到
//            1-4: 注意: 这里查找如果的路径可以默认不带后缀名, 则默认使用 .js .json .mjs .node来进行查找, 如果找到目录下面没有文件或者如果是package.json 里面的main字段会自动使用index.js 来进行导入
//
//    2. 判断在缓存中查找是否导入过改模块, 如果导入过,直接从缓存中拿结果
//    3. 如果缓存中没有,直接读取文件的内容并且放到一个函数的执行环境里面
//    4.
        function __temp(module, exports, require, __dirname, __filename) {
        // 读取的文件内容
        }
//     5. 创建module对象 let module = module.exports  // 这里的this == module.exports 
//    6. 调用函数执行  __temp.call(module.exports, module, exports, require, module.dirname, module.filename)
//    7. 返回结果 return module.exports 
// }
相关文章
|
1月前
|
缓存 小程序 UED
如何利用小程序的生命周期函数实现数据的加载和更新?
如何利用小程序的生命周期函数实现数据的加载和更新?
70 4
|
1月前
学习使用如何调用外部函数
学习使用如何调用外部函数
33 8
|
1月前
|
JavaScript 前端开发 API
《vue3第六章》其他,包含:全局API的转移、其他改变
《vue3第六章》其他,包含:全局API的转移、其他改变
22 0
|
3月前
|
存储 前端开发 rax
函数过程的调用
函数过程的调用
|
前端开发
前端学习案例16-promise的理解方式&调用机制3
前端学习案例16-promise的理解方式&调用机制3
72 0
前端学习案例16-promise的理解方式&调用机制3
|
前端开发
前端学习案例2-promise的理解方式和调用机制1
前端学习案例2-promise的理解方式和调用机制1
53 0
前端学习案例2-promise的理解方式和调用机制1
|
前端开发
前端学习案例17-promise的理解方式&调用机制4
前端学习案例17-promise的理解方式&调用机制4
64 0
前端学习案例17-promise的理解方式&调用机制4
|
前端开发
前端学习案例14-promise的理解方式&调用机制1
前端学习案例14-promise的理解方式&调用机制1
76 0
前端学习案例14-promise的理解方式&调用机制1
|
前端开发
前端学习案例15-promise的理解方式&调用机制2
前端学习案例15-promise的理解方式&调用机制2
78 0
前端学习案例15-promise的理解方式&调用机制2
|
前端开发
前端学习案例3-promise的理解方式和调用机制2
前端学习案例3-promise的理解方式和调用机制2
59 0
前端学习案例3-promise的理解方式和调用机制2