前端

理解 require

通过伪代码理解 require 的执行过程

// 模拟 Node.js 模块系统中的 require 函数 function require(modulePath) { if (modulePath in require.cache) { return require.cache[modulePath].exports; } let module = { exports: {} }; // module.exports 和 exports 引用是同一个对象 let exports = module.exports; require.cache[modulePath] = module; let __filename = modulePath; let __dirname = path.dirname(__filename); function _require(exports, require, module, __filename, __dirname) { // 执行模块代码 } _require.call(module, exports, require, module, __filename, __dirname); return module.exports; }
Previous
模块化规范(CommonJS, ESM)