Подтвердить что ты не робот

Оптимизация Webpack с помощью плагина UglifyJS вызывает ошибку времени выполнения

У меня есть изоморфное приложение React, которое связано через webpack.

У меня есть 2 точки входа, соответствующие 2 связанным файлам: vendors.js и app.js.

При запуске webpack-dev-сервера или при компиляции без каких-либо флагов оптимизации все работает нормально. Однако, как только я пытаюсь использовать плагин Uglify, скомпилированный вывод содержит ошибки.

Я пробовал:

webpack -p
webpack -optimize-minimize

или в config:

new webpack.optimize.UglifyJsPlugin({sourceMap:false})

Но все они приводят к той же ошибке времени выполнения (undefined variables).

Есть ли что-то очевидное, что может быть причиной этого? Является ли Uglify чрезмерно усердным и что-то не удаляет?

4b9b3361

Ответ 1

Проблема была вызвана агентом Uglify. Не зная, какое переменное переименование вызывает проблему, решение заключалось в том, чтобы полностью отключить маневр:

new webpack.optimize.UglifyJsPlugin({
  sourceMap: false,
  mangle: false
})

Это должно быть добавлено как Webpack Plugin в ваш файл конфигурации, например:

var config = {

  //... various config settings

  plugins: [
    new webpack.optimize.UglifyJsPlugin({
      sourceMap: false,
      mangle: false
    })
  ]
};

Ответ 2

Для тех, кто отключил mangle и все еще есть проблема, проверьте, если вы создаете с параметром -p. Похоже, что -p также искажает вывод, и в моем случае мне пришлось переключить UflifyJsPlugin mangle на false и построить без флага -p, чтобы заставить его работать (за счет увеличения веса js около 50 %)