Как заставить оператор импорта правильно работать внутри кода, созданного с помощью модуля node:vm?
В нашем проекте у нас есть пользовательский объект, который используется в качестве регистратора.
Итак, нам нужно заменить значение по умолчанию
console
.
Для этого мы решили использовать модуль vm .
Но мы сталкиваемся с проблемой при использовании импорта внутри кода, созданного с помощью
vm.Script
:
приложение.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();
Вывод:
Ошибка: не удается найти путь к модулю
Вопрос :
Как заставить импорт работать правильно внутри файла application.js?