Использование VM2 с Webpack
У меня возникли проблемы с использованием веб-пакета с проектом машинописного текста, который использует vm2.
webpack --config webpack.config.js
дает следующую ошибку:
ОШИБКА в index.js от Terser Недопустимый параметр функции [webpack://./node_modules/source-map-loader/dist/cjs.js!./node_modules/vm2/lib/main.js:1226,1][index.js:1262,21]
Это минимальное воспроизведение, с которым я тестировал:
import { VM } from 'vm2';
export async function run(): Promise<void> {
new VM();
}
С помощью
optimization: { minimize: false } }
вариант в моем мне удалось найти источник ошибки. в
vm2
исходный код пакета этот блок существует:
const HOST = {
...,
require,
...
}
который упаковывается как:
const HOST = {
...,
__webpack_require__(952),
...
}
Это явно не удается. Я не уверен, что еще я могу здесь сделать, есть ли где-нибудь конфигурация, которую я могу изменить на
Мой
webpack.config.js
:
const path = require('path');
module.exports = {
target: 'node',
entry: './vm2index.ts',
output: {
filename: 'index.js',
path: path.resolve(__dirname, 'dist'),
libraryTarget: 'commonjs',
},
// optimization: {
// minimize: false,
// },
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx'],
},
devtool: 'source-map',
mode: 'production',
// Add the loader for .ts files.
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'awesome-typescript-loader',
exclude: /node_modules/,
},
{
enforce: 'pre',
test: /\.js$/,
loader: 'source-map-loader',
},
],
},
stats: {
warningsFilter: [
"Module not found: Error: Can't resolve 'encoding'",
"Cannot find SourceMap 'typescript.js.map'",
],
}
};