前端
理解 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;
}