Commit Graph

228 Commits

Author SHA1 Message Date
Tobias Koppers c7f93af138 refactor startup logic to better integrate with libraries
get rid of startupNoDefault and many custom logic regarding this in jsonp chunk loading
add onChunksLoaded runtime method to cover that for all chunk loading types
add `__webpack_runtime_id__` to access the current runtime
allow to use onChunksLoaded for other module types too
2021-03-08 20:25:09 +01:00
Tobias Koppers ed06a7f83a new Worker() support
add support for async anonymous entrypoints from inside the codebase
add worker example
move entry options into Entrypoint and receive them from there
2020-09-08 07:37:20 +02:00
Tobias Koppers 41a8e2ea48 use xor to hash modules instead of sorting them 2020-08-14 10:54:24 +02:00
Tobias Koppers 77cdce7393 remove unused methods, improve code coverage 2020-07-29 11:14:26 +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 1b3246361b add consume shared module plugin 2020-05-25 23:14:19 +02:00
Tobias Koppers b9c50fdb09 fix jsdoc documentations 2020-04-28 19:42:58 +02:00
evilebottnawi 93dd2b0cfb chore(deps): update eslint plugins 2020-03-04 12:37:14 +03:00
Tobias Koppers bcf2f55ecb remove ChunkGraph.getOrderedChunkEntryModulesWithChunkGroup as it makes no sense 2020-02-26 17:22:46 +01:00
Ivan Kopeykin 0d26b7a437 refactor(Chunk): use only delete method instead of `has` and `delete` chain 2020-02-05 14:01:51 +03:00
jamesgeorge007 705d90e34c fix: rephrase getChunkMaps method signature info 2020-01-21 20:36:36 +05:30
jamesgeorge007 155df9f553 fix: rephrase split method signature info 2020-01-21 20:34:37 +05:30
jamesgeorge007 3652a30ab5 fix: rephrase groupsIterable method signature info 2020-01-21 20:33:19 +05:30
jamesgeorge007 fe54de91cd fix: rephrase getNumberOfGroups method signature info 2020-01-21 20:32:33 +05:30
jamesgeorge007 05cc9d0328 fix: typo within addGroup method signature info 2020-01-21 20:30:52 +05:30
Tobias Koppers 1070ce925b remove Array.prototype.reduce calls to simplify code 2020-01-17 18:31:29 +01:00
Tobias Koppers accd66c3ba
Merge pull request #9971 from smelukov/deprecation-codes
Add deprecation codes
2019-11-15 12:04:47 +01:00
Tobias Koppers 74074a9b18 add deprecationCode argument to getChunk/ModuleGraphForChunk/Module 2019-11-15 10:07:41 +01:00
Tobias Koppers 5cd866e7e3 order entry modules for deterministic chunk hash 2019-11-14 18:05:03 +01:00
Tobias Koppers 14e901225c remove return value of ChunkGraph.connectChunkAndModule 2019-11-10 21:05:26 +01:00
Tobias Koppers 65bdb43180 fix badly chosen max fill rate for deterministic
sort modules by identifier in output file, that's better for gzip
2019-10-16 16:38:04 +02: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 e507392094 add output.ecmaVersion options to set emitted code style
fix a bug with prefetching initial chunks
InitFragments have get[End]Content methods which get a sourceContext
RuntimeModules have implicit chunk and compilation
changed default to `output.ecmaVersion: 2015`
2019-08-26 21:32:29 +02:00
Tobias Koppers ab8f0b9191 Use Set prototype for better deprecation performance 2019-07-26 13:46:24 +02:00
Tobias Koppers 126fb99121 move chunk graph building into separate file
refactor chunk graph generation to include available modules optimization
2019-07-26 07:53:28 +02:00
Tobias Koppers cac462cba8
Merge pull request #8983 from hiroppy/feature/url
add experimental Url support
2019-07-17 23:32:15 +02:00
Tobias Koppers 4fa8addeec Handle auxiliary files separately from normal files 2019-07-17 23:13:08 +02:00
Tobias Koppers 1d72a05fed Merge tag 'v4.36.0' into next
4.36.0
2019-07-17 16:02:33 +02:00
Tobias Koppers fbff5f3c75 allow filename as function at more places
fixes #9296
2019-06-18 22:22:09 +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 c5f94f3b6a don't emit and load JS files for chunks without JS modules
allow custom module types in rules
allow configCases to access stats
2019-05-22 13:12:15 +02:00
Tobias Koppers abc825d58f Merge tag 'v4.32.0' into next
4.32.0
2019-05-20 14:46:31 +02:00
Tobias Koppers b6090b6943 delay prefetching until all initial code is evaluated
add test case
fix bug in Chunk.getChildIdsByOrdersMap
2019-05-10 23:10:32 +02:00
Florent Cailhol f860c870ac Fix Compiler.hooks.make callbacks 2019-05-10 09:55:59 +02:00
Tobias Koppers b66143f706 Merge tag 'v4.30.0' into next
4.30.0
2019-05-09 21:34:28 +02:00
huruji 9b1d7b5037 feat(Chunk.js): size fn: Modify options to default parameter 2019-02-20 22:23:32 +08: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 1374757006 remove ModuleReason
remove HotUpdateChunkTemplate
move compareLocations into comparators
re-enable NodeSourcePlugin for `.mjs`
2018-12-20 16:38:26 +01:00
Tobias Koppers 123b0a64e7 add plugin system for Stats presets, defaults, creation and printing 2018-12-18 22:07:14 +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 a8e51c322b make hashing more consistent 2018-11-30 13:19:55 +01:00
Mihail Bodrov 537d3e482f Cache hasRunstime in chunk 2018-11-30 02:59:26 +03:00
Tobias Koppers 2857ad3ee4 runtime module for getChunkFilename 2018-11-29 16:15:26 +01:00
Timur Amirov 7a0af76dac Fix a typo in Chunk#split jsdoc comment 2018-11-07 22:07:51 +01:00
Florent Cailhol de41d1fe8b Add missing types on Chunk related classes 2018-11-07 14:10:57 +01:00
Tobias Koppers 7654a1cefe fix behavior and add test case 2018-10-24 10:02:12 +02:00
Fabian Mastenbroek 6bdc47b4b2 Fallback to shortest when both chunks have entry modules 2018-10-24 09:47:30 +02:00
Fabian Mastenbroek 462604a096 Prefer chunks with entry module when picking name (#7516)
This change changes the algorithm for picking the name of a chunk when
integrating two chunk, by choosing the chunk with an entry module. If
none have one, we use the old algorithm instead, choosing based on the
shortest name.

Fixes #7516
2018-10-24 09:47:28 +02:00
Tobias Koppers 60b06472f5 make LimitChunkCountPlugin stable
fix integrating non-runtime with runtime chunk
move entry modules when integrating two chunks
2018-10-23 11:32:36 +02:00