Использование 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'",
        ],
    }
};

0 ответов

Другие вопросы по тегам