Подтвердить что ты не робот

Плагин для общих кусков vs webpack dll

Прежде чем я использовал плагин common chunks для создания пакета поставщиков, содержащий сторонние библиотеки, такие как angular, response, lodash и т.д., но затем я знал о плагине webpack dll. Они, похоже, делают то же самое, но плагин dll также позволяет сократить время сборки. Поэтому я смущен, мне нужно использовать оба этих плагина вместе. Должен ли я использовать плагин common chunks для создания пакета поставщиков в сборке сборки и плагине dll в сборке разработки. Или я должен использовать плагин dll как для сборки, так и для разработки? Не могли бы вы объяснить это?

4b9b3361

Ответ 1

Извините за длинный ответ, но пусть надеется, что это может помочь сделать вещи более ясными.

Обоснование CommonsChunkPlugin

Автор проекта определяет ряд точек входа приложения, которые будут создавать каждый пакет. Типичными примерами являются поставщики, полиполки, основные, но, например, ваше приложение может быть разделено на несколько независимых "зон", что имеет смысл загружать отдельно (например, логин, главная, настройки).

Затем автор проекта определяет, какой из этих пакетов или отдельный, должен содержать общий для всех код. Это типично сторонние библиотеки и ваши собственные общие утилиты во всех точках входа.

Тогда ответственность плагина заключается в том, чтобы анализировать и собирать такой общий код, а затем помещать его в определенный пакет. Весь такой анализ и работа происходят снова и снова каждый раз, когда вы начинаете новую сборку, и - в режиме просмотра - когда вы изменяете код, который является общим и происходит, чтобы попасть в пакет общих прав.

Такой раскол полезен как для сборки разработки, так и для сборки сборки. Но для среды разработчиков, позвольте просто сказать, что код перестройки, связанный с поставщиками и полиполками, может занять довольно много времени, и это может быть пустой тратой, когда вы не меняете эти части (при условии, что сторонний код, на который вы зависите, больше вашего собственной кодовой базы).

Обоснование DllPlugin

Учитывая ту же среду, например, разработчик, автор проекта создает два webpack-конфигурации, где раньше был один. Плагин может быть применен к производственной среде, хотя можно сказать, что DllPlugin имеет больше смысла в разработке (см. Ниже).

Первая конфигурация сборки webpack необходима для так называемых DLL файлов, которые близки к коду Commons, рассмотренному ранее, но не точно. Насколько я понимаю, библиотеки DLL в основном имеют тенденцию группировать сторонний код (поставщик и полиполки), а не свой собственный общий код полезности, но опять же это скорее впечатление, а не строгое правило. Во всяком случае, здесь автор проекта должен группировать код, который меняется намного реже во время обычной сессии разработки. Идея, в среде разработчиков, заключается в том, чтобы каждый раз запускать эту сборку, например, когда изменяется зависимость. И обычно разработчик должен запускать эту сборку, когда он/она думает, что это необходимо.

Другая конфигурация сборки webpack необходима для собственного кода проекта или любого кода, который регулярно изменяется при работе с dev. Это фактическая сборка, которую разработчик будет запускать снова и снова или запускаться в режиме просмотра, и на этом этапе она должна быть намного быстрее по сравнению с одной сборкой, наблюдаемой в сценарии CommonsChunk.


Итак, в целом, они кажутся похожими, но они позволяют вам поражать разные цели. Настолько, что вы можете подумать об использовании DllPlugin для вашей среды разработки (преимущество: короткое время компиляции), при использовании CommonsChunkPlugin для производства (преимущество: короткое время загрузки при изменении приложения). Опять же, вы также можете использовать DllPlugin также в производстве, с небольшим неудобством запускать две сборки подряд: один для DLL, следующий для приложения.

НТН

Ответ 2

Вы используете тот или иной. Вот статья, в которой описывается, как использовать DllPlugin и внизу внизу страницы вы можете увидеть альтернативные методы выполнения одной и той же вещи. Он рассказывает вам, какие отличия, а также преимущества и недостатки. Это должно заставить вас начать.

Ответ 3

Я искал разницу здесь, но я действительно не думаю, что это так. По крайней мере, не больше.

Если вы посмотрите на webpack documenation для библиотек расщепления кода, в нем упоминается способ извлечения аналогичного файла манифеста. По моему мнению, это то, что делает DllPlugin, за исключением того, что он немного более скрыт с CommonsChunkPlugin.

Преимущество в том, что вам не нужно поддерживать несколько конфигураций Webpack для такого рода функций.