Среда: React 16.3, Redux 3.7.2, Webpack 4.6.0, плагин UglifyJS для Webpack 1.2.5.
Я пытаюсь устранить ошибку, которая возникает только при сборке с NODE_ENV = 'production' (которая включает минификацию с помощью плагина UglifyJS webpack через mode: 'production'
).
Иерархия компонентов выглядит примерно (за вычетом div
s) примерно так:
Sidebar
SidebarSection (array)
SidebarSubSection (array)
Field (e.g. InputField)
Оба компонента SidebarSection и SidebarSubSection создаются с уникальными атрибутами key
. Когда запускается обработчик события onChange для поля, он обновляет модель с помощью редукторного редуктора, который запускает повторную визуализацию боковой панели и дочерних компонентов. В разработке все это работает нормально, но в производстве (с минификацией) мы получаем ошибки, вызванные отключением / повторным подключением SidebarSubSection вместе со всеми дочерними полями.
Согласно https://reactjs.org/docs/reconciliation.html этого не должно происходить, учитывая, что типы в дереве не меняются и что мы используем ключи для массивов компонентов.
Не помогли такие вещи, как keep_classnames
в параметрах сжатия uglify.
Моя конкретная конфигурация для uglifyjs под optimization
:
minimizer: [
new UglifyJsPlugin({
sourceMaps: true,
uglifyOptions: {
ecma: 8,
compress: {
dead_code: true,
unused: true,
inline: false,
global_defs: {
'process.env.NODE_ENV': 'production'
}
}
}
})
]
Есть идеи?