Webpack 4 - Как настроить минимизацию?

Webpack 4 поставляется со следующим утверждением:

webpack.optimize.UglifyJsPlugin был удален, вместо него используйте config.optimization.minimize.

Достаточно справедливо, но я не могу найти никакой информации о настройке экземпляра UglifyJsPlugin, работающего под капотом, например, для изменения каталога кеша. Можно ли это сделать?


person csvan    schedule 01.03.2018    source источник
comment
Для справки: UglifyJsPlugin значения по умолчанию перечислены здесь   -  person davnicwil    schedule 28.08.2018


Ответы (6)


Невозможно изменить конфигурацию по умолчанию.

Однако вы можете использовать параметр optimization.minimizer для создания собственного экземпляра UglifyJsPlugin. Используя 4.0, мы использовали этот пример для получения исходных карт, даже когда mode установлено, например, на 'production' (больше не требуется с 4.1.1):

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
  optimization: {
    minimizer: [
      // we specify a custom UglifyJsPlugin here to get source maps in production
      new UglifyJsPlugin({
        cache: true,
        parallel: true,
        uglifyOptions: {
          compress: false,
          ecma: 6,
          mangle: true
        },
        sourceMap: true
      })
    ]
  }
};
person Beau    schedule 01.03.2018
comment
Разве webpack 4 не должен был иметь нулевую конфигурацию? - person connexo; 02.03.2018
comment
Это требует от меня создания экземпляра плагина, я просто хочу изменить существующую конфигурацию. - person csvan; 02.03.2018
comment
@csvan невозможно настроить, необходимо создать собственный экземпляр, чтобы указать пользовательскую конфигурацию. - person Beau; 02.03.2018
comment
@connexo Я думаю, что пример, показанный выше, в какой-то момент станет ненужным, и что цель по-прежнему - нулевая конфигурация, но это еще не совсем так! для справки: этот конкретный пример: github.com/webpack/webpack/issues/6614 - person Beau; 02.03.2018
comment
Я сделал то, что вы сказали, и получил ошибку: ReferenceError: UglifyJsPlugin is not defined - person Pierre Trollé; 07.04.2018
comment
@PierreTrollé извините; Я только что добавил строку require в пример :) - person Beau; 09.04.2018
comment
И имейте в виду, что вам может понадобиться сделать yarn add uglifyjs-webpack-plugin --dev ;) - person Alfonso Pérez; 09.04.2018
comment
@Karolis правильно, насколько я знаю, документы не обновлены для Webpack 4.x ... эта информация получена из проблемы GitHub. - person Beau; 11.04.2018
comment
и здесь; найдите оптимизацию.минимайзер на этой странице: medium.com/webpack/webpack -4-режим-и-оптимизация-5423a6bc597a - person Beau; 11.04.2018
comment
один из выпусков GH, в которых это документировано: github.com/webpack/webpack/issues/6879 - person Beau; 11.04.2018
comment
Веб-пакет @AlfonsoPérez уже устанавливает uglifyjs-webpack-plugin как зависимость - person Beau; 12.04.2018
comment
У меня такая же проблема. Только что обновился с Webpack 3 до 4. Когда я пытаюсь собрать, он запускается, но не работает в веб-пакете с ошибкой, указанной выше. Я пробовал решение выше безрезультатно. Не исправляет это и не дает мне другую ошибку. Где это должно быть реализовано? - person Lazerbrains; 18.01.2020

Не добавляя uglifyjs-webpack-plugin, вы можете просто добавить это в конец файла webpack.prod.config.js:

 optimization: {
   minimize: false
 }
person Nafis    schedule 16.09.2019
comment
это отвечает на вопрос? ОП спрашивает, как настроить плагин, а не отключить его? - person Mr5o1; 18.09.2020

Вы можете попробовать это

npm install uglifyjs-webpack-plugin --save-dev

webpack.config.js

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
  optimization: {
    minimizer: [new UglifyJsPlugin()],
  },
};

документация по веб-пакету

person Sarath Ak    schedule 03.09.2019

Просто беги:

yarn add uglifyjs-webpack-plugin --dev

Ссылка: ответ Alfonso Pérez

person Rafael Corrêa Gomes    schedule 29.01.2019

Для тех, кто шел за мной, понял, что эта вводящая в заблуждение ошибка не была связана с моей правильной конфигурацией веб-пакета, но на самом деле offline-plugin устарела и вызвала эту проблему. Его нужно было обновить. См. проблему github: https://github.com/webpack-contrib/uglifyjs-webpack-plugin/issues/234#issuecomment-369134047

person Tanner Hallman    schedule 16.06.2019

Вы должны выбрать вариант p: https://webpack.js.org/guides/production/#cli-alternatives : этот флаг указывает Webpack оптимизировать вашу сборку для производственной среды. Вы можете использовать его с новым «производством» mode для сборки меньшего размера.

person KorHosik    schedule 01.03.2018
comment
Спасибо, но я хочу изменить конфигурацию по умолчанию. - person csvan; 02.03.2018