Оптимизация 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 чрезмерно усердным и что-то не удаляет?
Ответы
Ответ 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 %)