/
githubmirror
/
webpack
Обзор
Документация
Войти
/
githubmirror
/
webpack
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v5.103.0
test/helpers/asModule.js
34 строки
1004 B
Alexander Akait
fix: force use es-lexer for mjs files for build dependencies (#19904)
12 сен 2025, 19:59
Не верифицирован
12 сен 2025, 19:59
ce2f41e
Код
Авторство
О чём код?
"use strict"; const vm = require("vm"); const SYNTHETIC_MODULES_STORE = "__SYNTHETIC_MODULES_STORE"; const [major] = process.versions.node.split(".").map(Number); module.exports = async (something, context, unlinked) => { if ( something instanceof (vm.Module || /* node.js 10 */ vm.SourceTextModule) ) { return something; } context[SYNTHETIC_MODULES_STORE] = context[SYNTHETIC_MODULES_STORE] || []; const i = context[SYNTHETIC_MODULES_STORE].length; context[SYNTHETIC_MODULES_STORE].push(something); const code = [...new Set(["default", ...Object.keys(something)])] .map( (name) => `const _${name} = ${SYNTHETIC_MODULES_STORE}[${i}]${ name === "default" ? "" : `[${JSON.stringify(name)}]` }; export { _${name} as ${name}};` ) .join("\n"); const m = new vm.SourceTextModule(code, { context }); if (unlinked) return m; await m.link(() => {}); // node.js 10 needs instantiate if (major === 10 && m.instantiate) m.instantiate(); await m.evaluate(); return m; };