Webpack дедупликация
Будет ли webpack дедуплировать пакеты, которые уже были в комплекте с webpack?
Например,
| Webpack bundle 1 |
|------------------|
| react@15.5 |
| jquery@3.0 |
| Webpack app bundle |
|--------------------|
| react@15.5 |
| jquery@3.1 |
| Webpack bundle 1 |
Будет ли комплект приложений Webpack включать в себя 2 копии activ@15.5? Будет ли комплект приложений Webpack включать 2 копии jquery?
1 ответ
Это все из-за конфигурации, которую вы даете веб-пакету. Если у вас есть две точки входа, которые не взаимодействуют друг с другом, и оба импортируют jquery и реагируют, поэтому ответ - да, у вас будут эти библиотеки в обоих пакетах. Хотя вы можете легко создать пакет поставщиков, используя CommonsChunkPlugin
, Вот пример того, как поместить модули поставщиков в отдельный блок, который будет использоваться обеими точками входа:
new webpack.optimize.CommonsChunkPlugin({
name: "vendor",
minChunks: function (module) {
return module.context && module.context.indexOf("node_modules") !== -1;
}
})
Таким образом, все модули внутри node_modules будут экспортированы в пакет под названием vendor.