123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- "use strict";
- const { STAGE_BASIC, STAGE_ADVANCED } = require("../OptimizationStages");
- class RemoveEmptyChunksPlugin {
-
- apply(compiler) {
- compiler.hooks.compilation.tap("RemoveEmptyChunksPlugin", compilation => {
-
- const handler = chunks => {
- const chunkGraph = compilation.chunkGraph;
- for (const chunk of chunks) {
- if (
- chunkGraph.getNumberOfChunkModules(chunk) === 0 &&
- !chunk.hasRuntime() &&
- chunkGraph.getNumberOfEntryModules(chunk) === 0
- ) {
- compilation.chunkGraph.disconnectChunk(chunk);
- compilation.chunks.delete(chunk);
- }
- }
- };
-
- compilation.hooks.optimizeChunks.tap(
- {
- name: "RemoveEmptyChunksPlugin",
- stage: STAGE_BASIC
- },
- handler
- );
- compilation.hooks.optimizeChunks.tap(
- {
- name: "RemoveEmptyChunksPlugin",
- stage: STAGE_ADVANCED
- },
- handler
- );
- });
- }
- }
- module.exports = RemoveEmptyChunksPlugin;
|