手动实现commonJs规范

    xiaoxiao2022-07-07  183

    a.js

    module.exports = '我的第一个webpack'

    b.js

    let fs = require('fs') //common.js规范实现(node中) let a = req('./a.js') function req(moduleName){ let content = fs.readFileSync(moduleName, 'utf-8') //下面是创建一个字符串函数 let fn = new Function('exports','module', 'require', '__dirname', '__filename', content + '\n return module.exports' ); //构造一个module对象,用于给module.exports赋值 let module = { exports:'' } //这里传入req是由于req的文件里面可能require其他文件 return fn(module.exports,module,req,__dirname,__filename) } /* * fn函数注释 */ // function fn(exports,module, require, __dirname, __filename){ // //let content = fs.readFileSync(moduleName, 'utf-8')执行结果是字符串 // module.exports = '我的第一个webpack' // return module.exports // } console.log(a)

     

    最新回复(0)