如何使 `import` 语句在使用 node:vm 模块创建的代码中正常工作?

How to make the `import` statement work properly inside the code created using the node:vm module?

在我们的项目中,我们有用作记录器的自定义 console 对象。
所以我们需要替换默认的console.
为此,我们决定使用 vm 模块。
但是我们在使用 vm.Script:

创建的代码中使用 imports 时遇到了问题

application.js:

import path from 'path';

console.log(path.resolve('./apps'));

main.js:

const context = {
  console,
  global: {},
  module: {},
  exports: {},
  require,
};
context.global = global;

const sandbox = vm.createContext(context);
const fileName = './application.js';
const src = await fsp.readFile(fileName, 'utf8');
const script = new vm.Script(`module.exports = () => {\n${src}\n};`);
const execute = script.runInNewContext(sandbox);

execute();

输出:
错误: 找不到模块 'path'

问题:
如何使导入在 application.js 文件中正常工作?

请勿使用 new vm.Script if you want to create a module. Use a new vm.Module!请注意,API 仍处于实验阶段。