Чтение Chunk сущность из webpack исходного кода, я нашел следующий фрагмент кода:
getAllAsyncChunks() {
const queue = new Set();
const chunks = new Set();
const initialChunks = intersect(
Array.from(this.groupsIterable, g => new Set(g.chunks))
);
for (const chunkGroup of this.groupsIterable) {
for (const child of chunkGroup.childrenIterable) {
queue.add(child);
}
}
for (const chunkGroup of queue) {
for (const chunk of chunkGroup.chunks) {
if (!initialChunks.has(chunk)) {
chunks.add(chunk);
}
}
for (const child of chunkGroup.childrenIterable) {
queue.add(child);
}
}
return chunks;
}
Я вижу здесь, что асинхронныйЧанк - это чанк, который изначально отсутствует в группах чанков (if (!initialChunks.has(chunk))
).Это позволяет мне думать, что асинхронный чанк - это чанк, который загружается впоследствии, например, во время выполнения.
Так что, если я правильно понял, предыдущий пример выдаст асинхронный чанк:
if (myCondition) {
import('myLib').then(myLib => {
// Do something
});
}
Это может также иметь место для горячей перезагрузки.Надеюсь, что кто-то может подтвердить это.
РЕДАКТИРОВАТЬ:
Как упомянуто в комментарии @dawncold, есть хорошая статья , которая объясняет, что такое чанк в первую очередь.