Ответ 1
Потратив целый день на изучение этого вопроса, я хотел дать, как мне кажется, более точный ответ. Команда webpack опубликовала полезный (и хитрый, заметить) глоссарий.
Я полагаю, что путаница с блоками и пакетами заключается в том, что термины могут относиться к одной и той же вещи, но должны использоваться в разных точках процесса веб-упаковки.
определения глоссария
Модуль: Отдельные функциональные фрагменты, которые обеспечивают меньшую площадь поверхности, чем полная программа. Хорошо написанные модули обеспечивают надежные абстракции и границы инкапсуляции, которые составляют целостный дизайн и ясную цель.
Чанк: Этот термин, специфичный для веб-пакетов, используется внутри для управления процессом объединения. Связки состоят из кусков, которые бывают нескольких типов (например, входные и дочерние). Как правило, чанки напрямую соответствуют выходным блокам, однако есть некоторые конфигурации, которые не дают отношения один к одному.
Пакет: Пакеты, созданные из нескольких отдельных модулей, содержат окончательные версии исходных файлов, которые уже прошли процесс загрузки и компиляции.
(акцент добавлен мной)
интерпретация
Я суммирую разницу: блок - это группа модулей в процессе веб-пакета, пакет - это испускаемый фрагмент или набор фрагментов.
Различие полезно, когда речь идет о процессах веб-пакетов по мере их возникновения. Поскольку модули объединяются в группы, они могут значительно измениться (особенно во время обработки плагинов), поэтому в этот момент называть их пакетами не совсем точно, фрагменты могут даже не передаваться как пакеты в конечном выводе! Затем, после того, как веб-пакет завершен, полезно иметь термин для обозначения всех выпущенных конечных файлов (пакетов).
Ваш пример
Так что для вашего примера
{
entry: {
foo: ["webpack/hot/only-dev-server.js","./src/foo.js"],
bar: ["./src/bar.js"]
},
output: {
path: "./dist",
filename: "[name].js"
}
}
- Модули: "webpack/hot/only-dev-server.js", "./src/foo.js", "./src/bar.js" (+ любые другие модули, которые являются зависимостями этих точек входа!)
- Куски: фу, бар
- Связки: фу, бар
В вашем примере ваши куски и связки имеют отношение 1:1, но это не всегда так. Например, добавление исходных карт означало бы, что у вас есть отношение 1: 2 между порцией и пакетом.