Мы используем Webpack DefinePlugin для создания выходного пакета для разных режимов рендеринга. Так, например, наш WebPack конфигурации возвратитWebpack DefinePlugin медленность. Любая альтернатива?
[{
entry: {
mode1: "./input.es6",
},
output: {
path: path.join(__dirname, 'dist'),
filename: "[name]-bundle.js",
},
plugins: [
new webpack.DefinePlugin({
__RENDER_MODE__: 'mode1',
}))
]
},{
entry: {
mode2: "./input.es6",
},
output: {
path: path.join(__dirname, 'dist'),
filename: "[name]-bundle.js",
},
plugins: [
new webpack.DefinePlugin({
__RENDER_MODE__: 'mode2',
}))
]
}]
В коде мы будем делать
if (__RENDER_MODE__ === 'mode1') {
require('jquery-ui')
}
if (__RENDER_MODE__ === 'mode2') {
require('other-lib')
}
Это позволяет генерировать пучки, которые более оптимизированы для каждого режима визуализации. Однако по мере увеличения нашего режима рендеринга мы запускаем несколько компиляций webpack, что резко замедляет процесс компиляции. У меня есть некоторые мысли в решении этой проблемы и хочу услышать больше входов:
Есть ли способ использовать 1 одноместный WebPack компиляции и не определяет замену плагина после компиляции завершена? Поэтому вместо того, чтобы DefinePlugin заменял переменные во время компиляции, мы только компилируем один раз и затем выполняем замену впоследствии.
Или, есть ли способ сделать за ввод DefinePlugin? Каждая запись будет иметь отдельную конфигурацию DefinePlugin.