Nodejs vm2 - как импортировать скрипты
Предположим, у вас есть скрипт A: определяет библиотеку с:
class MathFunctions { add(a, b) => { return a+b; } }
И у вас есть скрипт B: как-то повторно использует MathFunctions:
const mf = import MathFunctions;
console.log(mf.add(2, 2));
И вы хотите выполнить B в контексте VM, импортируя A.
Каков наилучший способ сделать это с ненадежным кодом?
Подобный вопрос здесь: https://github.com/patriksimek/vm2/issues/121
1 ответ
Система импорта узла (const foo = require('foo');
) работает, пропуская ваш код через препроцессор, который оборачивает его в функцию и передает в require, module, exports
Вы можете повторить этот эффект, запустив свой код также через препроцессор. К счастью, есть много доступных, так как браузеру также не хватает модулей. Так что любой из препроцессоров модуля для браузеров (например, веб-пакет) сделает свое дело.
Так что-то вроде new VM().run(webpack('./moduleB.js'))