Могу ли я заменить один пакет другим в моем файле конфигурации?

У меня есть это в моей конфигурации Webpack:

new webpack.optimize.UglifyJsPlugin({
  compress: {
    screw_ie8: true, // React doesn't support IE8
    warnings: false
  },
  mangle: {
    screw_ie8: true
  },
  output: {
    comments: false,
    screw_ie8: true
  }
}),

Работает нормально, пока не натыкается на модуль ES6, а затем ломается, потому что UglifyJS не может обрабатывать ES6.

Я нашел альтернативу, например: https://www.npmjs.com/package/uglify-js-es6, но я не знаю, смогу ли я заменить uglifyer из моей конфигурации чем-то другим. Я новичок в работе с конфигурацией Webpack.

Можно ли это сделать или нужно сделать что-то еще (может быть, исключить модуль из углифирования)?


person dnmh    schedule 27.03.2018    source источник
comment
Существует пакет под названием uglify-es, хотя, честно говоря, он не слишком хорош (пока), когда я его протестировал, он станет лучше. Помимо рекомендации библиотеки. Если вам действительно нужен вывод ES5 (для поддержки старых браузеров), вы должны использовать транспилятор (например, babel или TypeScript) для преобразования вашего кода в ES5, а затем использовать uglify для этого. Это на практике то, что люди делают, и это обычное дело.   -  person Benjamin Gruenbaum    schedule 27.03.2018
comment
@BenjaminGruenbaum - я не хочу транспилировать в ES5, потому что транспиляция в ES6 дает меньший результат + транспиляция в ES6 быстрее. У меня проблема только с этим пакетом. Мой вопрос был - как заменить текущий uglifyer внутри webpack.config. Я не знаю, как это сделать, синтаксически.   -  person dnmh    schedule 27.03.2018
comment
проверить   -  person Benjamin Gruenbaum    schedule 27.03.2018


Ответы (1)


Я нашел ответ здесь: Как минимизировать код ES6 с помощью Webpack?

Короче, из ответа выше:

npm install uglifyjs-webpack-plugin

или, в моем случае:

yarn add uglifyjs-webpack-plugin

а затем внутри моего webpack.config.js:

const Uglify = require("uglifyjs-webpack-plugin");

module.exports = {
  entry: ...,
  output: ...,
  plugins: [
    new Uglify()
  ]
};
person dnmh    schedule 27.03.2018