Tobias Koppers
9676693fa3
splitChunks performance improvement
2020-08-14 10:47:37 +02:00
Tobias Koppers
e16bdfda6c
refactor used exports analysis, hashing, code generation, optimizations
...
to keep track of runtimes, used exports depending on runtime
modules can have different hashes and generated code depending on runtime
chunks are only considered as equal for MergeDuplicateChunks and SplitChunks when exports used in contained modules are equal
added `optimization.usedExports: "global"` to opt-out from used exports analysis per runtime
added `splitChunks.usedExports` and `splitChunks.cacheGroups[x].usedExports` to enable/disable used exports comparing for modules
`splitChunks.usedExports` defaults to `true` in production
2020-07-27 22:40:44 +02:00
Tobias Koppers
6014ca7e86
splitChunks improvements
...
add new splitChunks.enforceSizeThreshold option
enforces splitting on certain size (ignoring maxRequests and minRemainingSize)
reduce default for splitChunks.minSize to 20k
set default for splitChunks.enforceSizeThreshold to 50k
fix bug where sorting didn't work for minSize: 0
2020-07-13 10:12:17 +02:00
Tobias Koppers
eac7d290ca
no need to sort already ordered results
2020-06-22 09:31:03 +02:00
Tobias Koppers
5e87e9bf55
fix too aggressive chunk renaming for maxSize
2020-06-22 09:30:01 +02:00
Tobias Koppers
9d2b79fa83
cache CacheGroup objects
2020-06-22 09:28:21 +02:00
Tobias Koppers
b9c50fdb09
fix jsdoc documentations
2020-04-28 19:42:58 +02:00
Tobias Koppers
cbb6ee6809
test more test cases for typings and fix typing bug
2020-04-21 09:25:55 +02:00
Mohsen Azimi
7b07a8db66
Upgrade to Prettier 2
2020-03-28 18:20:24 -04:00
evilebottnawi
dafa4cd69a
chore: setup cspell
2020-03-12 19:51:26 +03:00
Tobias Koppers
6477ca56f8
Split options defaulting in normalization and defaults
...
Apply defaults after plugins are applied to allow plugins to feature their own defaults.
This allows to make preset plugins.
2020-02-17 19:12:54 +01:00
Tobias Koppers
64675e3093
use output.hashFunction and hashDigest for getKey in SplitChunksPlugin
2020-02-04 09:18:54 +01:00
Tobias Koppers
8399762621
use bigints as chunks key for performance
2020-02-04 09:18:18 +01:00
Tobias Koppers
26d68719a3
cache getKey for splitChunks.maxSize
2020-02-03 11:02:49 +01:00
Tobias Koppers
95297186d5
remove Array.prototype.reduce calls to simplify code
2020-01-20 14:41:39 +01:00
Tobias Koppers
c80bae2959
faster cache access of contextify
2020-01-15 11:20:22 +01:00
Tobias Koppers
b80174a069
Improve backward-compat for various things
...
to enable mini-css-extract-plugin
2019-09-26 22:06:54 +02:00
Tobias Koppers
7bde43f47a
Merge tag 'v4.40.0' into next
...
4.40.0
2019-09-13 11:12:26 +02:00
Tobias Koppers
302e8d5e2b
add time logging for SplitChunksPlugin
2019-07-26 14:03:18 +02:00
Tobias Koppers
50bb510d65
avoiding v8 deopts
2019-07-10 00:29:20 +02:00
Tobias Koppers
b2e7837288
replace Object.assign with object spread
2019-06-19 13:16:05 +02:00
Tobias Koppers
fbff5f3c75
allow filename as function at more places
...
fixes #9296
2019-06-18 22:22:09 +02:00
Tobias Koppers
6cd2f367b8
Merge pull request #9302 from webpack/bugfix/issue-9288
...
fix chunk name reuse in SplitChunks
2019-06-18 16:50:11 +02:00
Ryan Drew
07dc8330d0
update name-too-long comment to length 109
2019-06-18 10:29:09 -04:00
Ryan Drew
6e16e12007
remove update to 100 line length
...
This commit removes the update to 100 line length. It's bad
practice to introduce a behavior change like that.
2019-06-18 10:04:14 -04:00
Tobias Koppers
e9b8b00b4f
fix chunk name reuse in SplitChunks
...
fixes #9288
2019-06-18 15:26:28 +02:00
Ryan Drew
054c933950
introduce name truncation config option for SplitChunksPlugin
2019-06-15 14:20:48 -04:00
Daniel Ruf
bb944d3de6
fix: remove duplicate code blocks in condition and switch-case
2019-06-15 13:31:45 +02:00
Tobias Koppers
0505e177f1
add more types and fix/remove TODOs
...
change Chunk.files to Set
remove checkContext from IgnorePlugin
remove external flag from ExternalModule
2019-06-14 10:45:56 +02:00
Tobias Koppers
6db94536ad
Merge tag 'v4.34.0' into next
...
4.34.0
2019-06-13 10:51:12 +02:00
Tobias Koppers
01eb9885a5
disable splitChunks.minRemainingSize for multiple selected chunks
2019-06-12 08:58:17 +02:00
Tobias Koppers
2f5bd7a8e3
fix minRemainingSize when multiple chunks are affected
...
issue: https://github.com/webpack/webpack/issues/8537#issuecomment-499818693
2019-06-11 17:46:36 +02:00
Tobias Koppers
92f8c36ca2
add `minRemainingSize` option for splitChunks to ensure leftover chunks from splitting have a minimum size
...
defaults to `minSize` of cache group
defaults to global option when not specified
global option defaults to zero in development
2019-05-13 13:10:23 +02:00
Florent Cailhol
b12f24d20c
Update hook types
2019-05-10 09:52:22 +02:00
Tobias Koppers
b66143f706
Merge tag 'v4.30.0' into next
...
4.30.0
2019-05-09 21:34:28 +02:00
Tobias Koppers
255b3b460d
fixes #8908
2019-03-15 12:39:21 +01:00
Tobias Koppers
e2e0983f4c
remove splitChunks restriction for custom filenames on non-initial chunks
...
fix bug, which generated incorrect static url mapping for get chunk filename runtime module
optimize generated code for chunk filename (shorter)
2019-02-19 11:16:53 +01:00
Tobias Koppers
180f912493
Merge tag 'v4.29.2' into next
...
4.29.2
2019-02-06 15:37:11 +01:00
Tobias Koppers
b25ff237bb
Prettify source code
2019-02-05 10:08:45 +01:00
Tobias Koppers
d40f7b2642
cache contextify and pass associatedObjectForCache to all calls
2019-01-19 12:40:00 +01:00
Florent Cailhol
b916ff1491
Improve SplitChunksPlugin typings
2018-12-12 10:49:16 +01:00
Florent Cailhol
2a10b12e09
Add maxAsyncSize and maxInitialSize options
2018-12-11 20:47:50 +01:00
Florent Cailhol
5f26040786
Add types to SplitChunksPlugin
2018-12-10 22:09:27 +01:00
Tobias Koppers
fe80339d71
use - instead of ~ as default for better compat
...
fix automaticNameDelimiter in splitChunks
fix test cases
2018-12-07 14:46:49 +01:00
Tobias Koppers
8281667668
improve ids for Long Term Caching
...
add deterministic chunk ids and make it default
StatsTestCases no longer need to explicitly use natural ids as the defaults are deterministic now too
add concept of id name hints for chunks
add `idHint` option to splitChunks to provide a hint
deduplicated code from different id plugins to IdHelpers
improve behavior of named ids in case of conflicts
remove `name: true` and `automaticNamePrefix` from splitChunks it's not as good as expected
improve named chunk ids to show root modules
2018-12-07 12:26:35 +01:00
Tobias Koppers
387803bf3d
re-add accidentally removed type
2018-12-05 20:23:47 +01:00
Tobias Koppers
30a68b20c7
support different size types in SplitChunksPlugin
2018-12-05 20:23:40 +01:00
Tobias Koppers
0cd0291011
Merge tag 'v4.27.1' into next
...
4.27.1
2018-12-05 20:17:58 +01:00
Tobias Koppers
b56727ec83
enforce should not prevent using `minChunks` etc. on cacheGroup
...
Partial revert "enforce doesn't affect minSize for maxSize"
2018-12-05 19:38:10 +01:00
Tobias Koppers
0ff1a4f8f8
Merge tag 'v4.27.0' into next
...
4.27.0
2018-12-04 11:02:26 +01:00