Как использовать Webpack & Terser только для сжатия кода - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь использовать веб-пакет для сжатия моего кода (удаления новых строк и пробелов) и ничего больше. Я не хочу никаких веб-пакетов __require__, никаких искажений, никаких мерзостей, просто удалите пробелы и новые строки.

Какие опции в terser / webpack мне нужно добавить для достижения этой цели?

let bundle = {
    mode: 'production',
    target: 'web',
    entry: path.resolve(__dirname, './res/') + '/bundle.js',
    output: {
        path: path.resolve(__dirname, './res/'),
        filename: 'minified.js',
    },
    optimization: {
        minimizer: [
            new TerserPlugin({
                terserOptions: {
                    ecma: undefined,
                    warnings: false,
                    parse: {},
                    compress: {},
                    mangle: false,
                    module: false,
                    toplevel: false,
                    keep_classnames: true,
                    keep_fnames: true,
                }
            })
        ]
    }
};

Кажется, не делает этого. Заранее спасибо.

1 Ответ

0 голосов
/ 19 июня 2019

просто используйте терсер напрямую без веб-пакета. Запустите npm i terser для его установки, тогда у вас будет 2 варианта:

  1. Используя его cli, terser --compress --mangle -- input.js.

  2. Используя его API от узла,

const Terser = require('terser');

const code = {
  'file1.js': 'function add(first, second) { return first + second; }',
  'file2.js': 'console.log(add(1 + 2, 3 + 4));',
};
const options = {
  ecma: undefined,
  warnings: false,
  parse: {},
  compress: {},
  mangle: false,
  module: false,
  toplevel: false,
  keep_classnames: true,
  keep_fnames: true,
};
const result = Terser.minify(code, options);
console.log(result.code);

...