Node模块化细节 common js伪代码

本文详细解释了Node.js中require函数的工作原理,包括如何将模块路径转换为绝对路径,检查模块缓存,以及如何读取并执行模块内容。最后展示了如何在运行时动态加载并打印模块结果。
摘要由CSDN通过智能技术生成
function require(modulePath) {
  //1. 将modulePath转换为绝对路径:D:\repository\NodeJS\源码\myModule.js
  //2. 判断是否该模块已有缓存
  // if(require.cache["D:\\repository\\NodeJS\\源码\\myModule.js"]){
  //   return require.cache["D:\\repository\\NodeJS\\源码\\myModule.js"].result;
  // }

  //3. 读取文件内容
  //4. 包裹到一个函数中

  function __temp(module, exports, require,  __dirname, __filename) {
    console.log("当前模块路径:", __dirname);
    console.log("当前模块文件:", __filename);
    exports.c = 3;
    module.exports = {
      a: 1,
      b: 2
    };
    this.m = 5;
  }

  //6. 创建module对象
  module.exports = {};
  const exports = module.exports;

  __temp.call(module.exports, module, exports, require, module.path, module.filename)
    return module.exports;
}

require.cache = {};

const result = require("./myModule");
console.log(result);
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值