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.

Другие вопросы по тегам