diff options
Diffstat (limited to 'node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js')
-rw-r--r-- | node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js b/node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js new file mode 100644 index 000000000..e8b5a9457 --- /dev/null +++ b/node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js @@ -0,0 +1,35 @@ +/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+
+class FlagIncludedChunksPlugin {
+
+ apply(compiler) {
+ compiler.plugin("compilation", (compilation) => {
+ compilation.plugin("optimize-chunk-ids", (chunks) => {
+ chunks.forEach((chunkA) => {
+ chunks.forEach((chunkB) => {
+ // as we iterate the same iterables twice
+ // skip if we find ourselves
+ if(chunkA === chunkB) return;
+
+ // instead of swapping A and B just bail
+ // as we loop twice the current A will be B and B then A
+ if(chunkA.modules.length < chunkB.modules.length) return;
+
+ if(chunkB.modules.length === 0) return;
+
+ // is chunkB in chunkA?
+ for(let i = 0; i < chunkB.modules.length; i++) {
+ if(chunkA.modules.indexOf(chunkB.modules[i]) < 0) return;
+ }
+ chunkA.ids.push(chunkB.id);
+ });
+ });
+ });
+ });
+ }
+}
+module.exports = FlagIncludedChunksPlugin;
|