Node中require方法的简单实现

364 阅读1分钟

B文件

module.exports = '测试测试';

A文件

let fs = require('fs');

/*
 * moduleName  模块名称
 */
function read(moduleName) {

  // content是读取到的文件内容, 务必填写编码类型
  let content = fs.readFileSync(moduleName, 'utf-8');
  let module = {
    exports: {}
  };

  // Node默认会给这几个参数,这里自己传递一下
  let fn = new Function('exports', 'module', 'require', '__dirname', '__filename', 'module.exports =' + content + ';\n return module.exports');

  return fn(module.exports, module, read, __dirname, __filename);

}

let str = read('./b.js');

console.log(str);

输出结果

成功打印出来了