У меня в конфиге следующее:
const viewerConfigProdWeb = merge(common.commonWebConfig, {
output: {
path: outputPath,
filename: common.bundleNameWeb
},
devtool: 'source-map',
mode: 'production',
optimization: {
minimizer: [
new UglifyJsPlugin({
cache: true,
parallel: true,
sourceMap: true,
uglifyOptions: {
compress: false, //<--- if enabled, causes errors
ecma: 6,
mangle: true,
exclude: path.resolve(__dirname, '../js/vendor/tomtom.min.js'), // <--- it is already minified, want to exclude it somehow. But this approach doesn't work =(
}
})
]
}
});
Я получаю ошибки во время выполнения, когда меняю 'compress' на true в uglifyOptions. Эти ошибки появляются, когда webpack пытается оптимизировать стороннюю библиотеку, которая уже сжата и уменьшена. Как исключить его из оптимизации?
Обновление: в соответствии с ответом Sin и Прочти меня изменил раздел оптимизации в конфигурации следующим образом:
optimization: {
minimizer: [
new UglifyJsPlugin({
cache: true,
parallel: true,
sourceMap: true,
exclude: /\.min\.js$/, //<---- moved up and used regex
uglifyOptions: {
compress: true, //<---- still causes errors when enabled
ecma: 6,
mangle: true
}
})
]
}
Это тоже не работает = (Есть другие идеи?


Поработав некоторое время, наконец обнаружил, что опция exclude проверяет только имя выходного файла, а не имя исходного файла. Для этого существует проблема с github.
Здесь вы можете попробовать решения, предоставленные @hulkish.
Исходный ответ (не работает):
Попробуйте добавить exclude на верхний уровень параметров UglifyJsPlugin. И используйте RegExp или массив RegExp вместо полного пути. См. uglifyjs-webpack-plugin README
Спасибо за Ваш ответ! В настоящее время я переключился на другую библиотеку, в которой нет этой проблемы. Если я снова столкнусь с этим, я попробую решение, описанное в проблеме.
Спасибо, что ответили, но у меня это тоже не работает = (