Ответ 1
Независимо от того, сколько точек входа у вас есть, у вас должен быть отдельный файл для ваших файлов поставщиков, таких как фреймворки (реагировать, angular, whatevs) и любые библиотеки, которые вам всегда нужны, но редко меняются. Вы хотите, чтобы они были отдельным пакетом, чтобы вы могли его кэшировать. Этот комплект всегда должен быть загружен. Все, что вы включаете в этот пакет, всегда будет доступно, но никогда не будет повторяться в ваших кусках, если вы используете его с commonChunksPlugin.
Вот пример из приложения, которое я сделал (просто отображая соответствующие параметры конфигурации):
module.exports = {
entry: {
client: 'client',
vendor: [
'react',
'react-addons-shallow-compare',
'react-addons-transition-group',
'react-dom',
'whatwg-fetch'
]
},
output: {
path: `${__dirname}/dist`,
filename: '[name].js',
publicPath: '/build/'
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
names: ['vendor', 'manifest']
})
]
}