+
95
-

请问nodejs中如何动态加载执行js文件?

现在有个main.js,还要许多子文件js在文件夹js中,请问nodejs中如何动态加载执行js文件?

网友回复

+
15
-

有两种方式

第一种、加载js文件compile

//main.js
const fs = require('fs')
fs.readFile = util.promisify(fs.readFile)
const bundle = await fs.readFile('./bundle.js', 'utf-8') //此时的bundle为String
const m = new module.constructor()
m._compile(bundle, 'bundle.js') // 第一个参数为要执行的代码字符串,第二个参数为文件名
//此时就可以通过m.exports来调用bundle.js文件中exports出来的东西

这种如果子文件有require的话就会出现找不到包

第二种、vm环境执行

//main.js
const fs = require('fs')
const NativeModule = require('module')
const vm = require('vm')

fs.readFile = util.promisify(fs.readFile)
cons...

点击查看剩余70%

我知道答案,我要回答