美文网首页
nodejs中require函数做了哪些事情?

nodejs中require函数做了哪些事情?

作者: 风雅欢乐 | 来源:发表于2020-07-07 22:26 被阅读0次

    以伪代码进行说明:

    function require(modulePath) {
        // 1. 将modulePath转换为绝对路径
        // 2. 判断该模块是否已有缓存
        
        if (require.cache['绝对路径']) {
            return require.cache['绝对路径'];
        }
        
        // 3. 读取文件内容
        // 4. 包裹到一个函数中
        
        function _temp(module, exports, require, __dirname, __filename) {
            // 模块代码...
        }
        
        // 6. 创建module对象
        module.exports = {};
        const exports = module.exports;
        
        // 7. 调用函数
        
        __temp.call(module.exports, module, exports, require, module.path, module.filename);
        
        return module.exports;
    }
    
    // require函数有个静态属性cache, 它是一个对象, 里面缓存了已经加载的模块的内容
    require.cache = {};
    

    相关文章

      网友评论

          本文标题:nodejs中require函数做了哪些事情?

          本文链接:https://www.haomeiwen.com/subject/hyjtcktx.html