diff --git a/src/utils/chunkAssignment.ts b/src/utils/chunkAssignment.ts index 2bd1397f3cc..c456ad21f47 100644 --- a/src/utils/chunkAssignment.ts +++ b/src/utils/chunkAssignment.ts @@ -2,6 +2,7 @@ import ExternalModule from '../ExternalModule'; import Module from '../Module'; import { getOrCreate } from './getOrCreate'; import relativeId from './relativeId'; +import { timeEnd, timeStart } from './timers'; type DependentModuleMap = Map>; type ChunkDefinitions = { alias: string | null; modules: Module[] }[]; @@ -203,6 +204,7 @@ function getOptimizedChunks( chunkModulesBySignature: { [chunkSignature: string]: Module[] }, minChunkSize: number ) { + timeStart('optimize chunks', 3); const { chunksToBeMerged, unmergeableChunks } = getMergeableChunks( chunkModulesBySignature, minChunkSize @@ -240,6 +242,7 @@ function getOptimizedChunks( unmergeableChunks.push(sourceChunk); } } + timeEnd('optimize chunks', 3); return unmergeableChunks; } diff --git a/test/chunking-form/samples/minChunkSize/best-merge-target/_config.js b/test/chunking-form/samples/minChunkSize/best-merge-target/_config.js index 67c2f82d5fb..ca1b905a639 100644 --- a/test/chunking-form/samples/minChunkSize/best-merge-target/_config.js +++ b/test/chunking-form/samples/minChunkSize/best-merge-target/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'uses the merge target that is closest', options: { input: [ diff --git a/test/chunking-form/samples/minChunkSize/merge-chunk-into-distant-shared/_config.js b/test/chunking-form/samples/minChunkSize/merge-chunk-into-distant-shared/_config.js index f6dda0da6df..1b184ed33a0 100644 --- a/test/chunking-form/samples/minChunkSize/merge-chunk-into-distant-shared/_config.js +++ b/test/chunking-form/samples/minChunkSize/merge-chunk-into-distant-shared/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'merges small chunks into shared chunks that are loaded by a non-close super-set of entry points', options: { diff --git a/test/chunking-form/samples/minChunkSize/merge-chunk-into-shared/_config.js b/test/chunking-form/samples/minChunkSize/merge-chunk-into-shared/_config.js index f83f353ce74..a6b8f26fbba 100644 --- a/test/chunking-form/samples/minChunkSize/merge-chunk-into-shared/_config.js +++ b/test/chunking-form/samples/minChunkSize/merge-chunk-into-shared/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'merges small chunks into shared chunks that are loaded by a super-set of entry points', options: { diff --git a/test/chunking-form/samples/minChunkSize/merge-three-small-chunks-a/_config.js b/test/chunking-form/samples/minChunkSize/merge-three-small-chunks-a/_config.js index cb2c4d9d513..69504dba2e8 100644 --- a/test/chunking-form/samples/minChunkSize/merge-three-small-chunks-a/_config.js +++ b/test/chunking-form/samples/minChunkSize/merge-three-small-chunks-a/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'merges small chunks into other small chunks first before merging into a big chunk', options: { input: ['main1.js', 'main2.js', 'main3.js', 'main4.js', 'main5.js'], diff --git a/test/chunking-form/samples/minChunkSize/merge-three-small-chunks-b/_config.js b/test/chunking-form/samples/minChunkSize/merge-three-small-chunks-b/_config.js index cb2c4d9d513..69504dba2e8 100644 --- a/test/chunking-form/samples/minChunkSize/merge-three-small-chunks-b/_config.js +++ b/test/chunking-form/samples/minChunkSize/merge-three-small-chunks-b/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'merges small chunks into other small chunks first before merging into a big chunk', options: { input: ['main1.js', 'main2.js', 'main3.js', 'main4.js', 'main5.js'], diff --git a/test/chunking-form/samples/minChunkSize/merge-two-small-chunks-a/_config.js b/test/chunking-form/samples/minChunkSize/merge-two-small-chunks-a/_config.js index 83edf5b8bc9..2b0b389db7d 100644 --- a/test/chunking-form/samples/minChunkSize/merge-two-small-chunks-a/_config.js +++ b/test/chunking-form/samples/minChunkSize/merge-two-small-chunks-a/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'merges small chunks into other small chunks first before merging into a big chunk', options: { input: ['main1.js', 'main2.js', 'main3.js', 'main4.js'], diff --git a/test/chunking-form/samples/minChunkSize/merge-two-small-chunks-b/_config.js b/test/chunking-form/samples/minChunkSize/merge-two-small-chunks-b/_config.js index 83edf5b8bc9..2b0b389db7d 100644 --- a/test/chunking-form/samples/minChunkSize/merge-two-small-chunks-b/_config.js +++ b/test/chunking-form/samples/minChunkSize/merge-two-small-chunks-b/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'merges small chunks into other small chunks first before merging into a big chunk', options: { input: ['main1.js', 'main2.js', 'main3.js', 'main4.js'], diff --git a/test/chunking-form/samples/minChunkSize/merge-unrelated/_config.js b/test/chunking-form/samples/minChunkSize/merge-unrelated/_config.js index 436f1161d76..7bc0924b1a2 100644 --- a/test/chunking-form/samples/minChunkSize/merge-unrelated/_config.js +++ b/test/chunking-form/samples/minChunkSize/merge-unrelated/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'merges unrelated small chunks if there is no better alternative', options: { input: ['main1.js', 'main2.js', 'main3.js'], diff --git a/test/chunking-form/samples/minChunkSize/no-merge-side-effects/_config.js b/test/chunking-form/samples/minChunkSize/no-merge-side-effects/_config.js index ca26c20da09..5146a813748 100644 --- a/test/chunking-form/samples/minChunkSize/no-merge-side-effects/_config.js +++ b/test/chunking-form/samples/minChunkSize/no-merge-side-effects/_config.js @@ -1,5 +1,4 @@ module.exports = { - solo: true, description: 'does not merge small chunks that have side effects', options: { input: ['main1.js', 'main2.js', 'main3.js'], diff --git a/test/function/samples/output-options-hook/_config.js b/test/function/samples/output-options-hook/_config.js index ed8e82de12c..8c661e955d7 100644 --- a/test/function/samples/output-options-hook/_config.js +++ b/test/function/samples/output-options-hook/_config.js @@ -27,6 +27,7 @@ module.exports = { dynamicImportInCjs: true, entryFileNames: '[name].js', esModule: 'if-default-prop', + experimentalMinChunkSize: 0, exports: 'auto', extend: false, externalImportAssertions: true, diff --git a/test/misc/optionList.js b/test/misc/optionList.js index 9cf18ae43ca..eadb77c7133 100644 --- a/test/misc/optionList.js +++ b/test/misc/optionList.js @@ -1,6 +1,6 @@ exports.input = 'acorn, acornInjectPlugins, cache, context, experimentalCacheExpiry, external, inlineDynamicImports, input, makeAbsoluteExternalsRelative, manualChunks, maxParallelFileOps, maxParallelFileReads, moduleContext, onwarn, perf, plugins, preserveEntrySignatures, preserveModules, preserveSymlinks, shimMissingExports, strictDeprecations, treeshake, watch'; exports.flags = - 'acorn, acornInjectPlugins, amd, assetFileNames, banner, bundleConfigAsCjs, c, cache, chunkFileNames, compact, config, configPlugin, context, d, dir, dynamicImportFunction, dynamicImportInCjs, e, entryFileNames, environment, esModule, experimentalCacheExpiry, exports, extend, external, externalImportAssertions, externalLiveBindings, f, failAfterWarnings, file, footer, format, freeze, g, generatedCode, globals, h, hoistTransitiveImports, i, indent, inlineDynamicImports, input, interop, intro, m, makeAbsoluteExternalsRelative, manualChunks, maxParallelFileOps, maxParallelFileReads, minifyInternalExports, moduleContext, n, name, namespaceToStringTag, noConflict, o, onwarn, outro, p, paths, perf, plugin, plugins, preferConst, preserveEntrySignatures, preserveModules, preserveModulesRoot, preserveSymlinks, sanitizeFileName, shimMissingExports, silent, sourcemap, sourcemapBaseUrl, sourcemapExcludeSources, sourcemapFile, stdin, strict, strictDeprecations, systemNullSetters, treeshake, v, validate, w, waitForBundleInput, watch'; + 'acorn, acornInjectPlugins, amd, assetFileNames, banner, bundleConfigAsCjs, c, cache, chunkFileNames, compact, config, configPlugin, context, d, dir, dynamicImportFunction, dynamicImportInCjs, e, entryFileNames, environment, esModule, experimentalCacheExpiry, experimentalMinChunkSize, exports, extend, external, externalImportAssertions, externalLiveBindings, f, failAfterWarnings, file, footer, format, freeze, g, generatedCode, globals, h, hoistTransitiveImports, i, indent, inlineDynamicImports, input, interop, intro, m, makeAbsoluteExternalsRelative, manualChunks, maxParallelFileOps, maxParallelFileReads, minifyInternalExports, moduleContext, n, name, namespaceToStringTag, noConflict, o, onwarn, outro, p, paths, perf, plugin, plugins, preferConst, preserveEntrySignatures, preserveModules, preserveModulesRoot, preserveSymlinks, sanitizeFileName, shimMissingExports, silent, sourcemap, sourcemapBaseUrl, sourcemapExcludeSources, sourcemapFile, stdin, strict, strictDeprecations, systemNullSetters, treeshake, v, validate, w, waitForBundleInput, watch'; exports.output = - 'amd, assetFileNames, banner, chunkFileNames, compact, dir, dynamicImportFunction, dynamicImportInCjs, entryFileNames, esModule, exports, extend, externalImportAssertions, externalLiveBindings, file, footer, format, freeze, generatedCode, globals, hoistTransitiveImports, indent, inlineDynamicImports, interop, intro, manualChunks, minifyInternalExports, name, namespaceToStringTag, noConflict, outro, paths, plugins, preferConst, preserveModules, preserveModulesRoot, sanitizeFileName, sourcemap, sourcemapBaseUrl, sourcemapExcludeSources, sourcemapFile, sourcemapPathTransform, strict, systemNullSetters, validate'; + 'amd, assetFileNames, banner, chunkFileNames, compact, dir, dynamicImportFunction, dynamicImportInCjs, entryFileNames, esModule, experimentalMinChunkSize, exports, extend, externalImportAssertions, externalLiveBindings, file, footer, format, freeze, generatedCode, globals, hoistTransitiveImports, indent, inlineDynamicImports, interop, intro, manualChunks, minifyInternalExports, name, namespaceToStringTag, noConflict, outro, paths, plugins, preferConst, preserveModules, preserveModulesRoot, sanitizeFileName, sourcemap, sourcemapBaseUrl, sourcemapExcludeSources, sourcemapFile, sourcemapPathTransform, strict, systemNullSetters, validate';