Commit Graph

200 Commits

Author SHA1 Message Date
Tobias Koppers d3cc2de2f9 add experiments.asyncEntries
add async entries plugin
async entries in global parser options
allow chunkFormat, chunkFilename and initialChunkFilename for entries
2021-04-14 14:45:50 +02:00
Tobias Koppers 404a854c8b improve hmr error handling abilities
pass module and moduleId with self error handler
add error handlers for dependency accept handlers
pass moduleId and dependencyId with dependency accept error handler
add output.strictModuleErrorHandling to opt-in into strict module error handling
HotModuleReplacementPlugin enalbed output.strictModuleErrorHandling automatically

fixes #12826
2021-03-09 20:23:00 +01:00
Tobias Koppers f25345cae9 refactor code generation and HMR plugin to generate real module hashes for HMR 2021-01-26 14:45:11 +01:00
Tobias Koppers c9fbdb9e48 avoid a breaking change and use a warning instead 2020-11-28 15:48:01 +01:00
Tobias Koppers d46f945572 fix problem when HMR and different runtimes
allow HMR to work in WebWorkers too
2020-11-28 13:53:32 +01:00
Tobias Koppers fac6c5241f add missing chunk groups to HotUpdateChunks 2020-09-25 10:53:14 +02:00
Tobias Koppers b58393fce0 fix optimization bailout for HMR dependencies 2020-09-15 12:35:58 +02:00
Tobias Koppers 12997f0a6c fix incorrect disposing of modules during HMR 2020-09-08 10:25:41 +02:00
Tobias Koppers 6b4ce6e011 improve HMR plugin with multiple runtimes 2020-07-28 14:06:04 +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 36cf3039aa use content hashes for assets 2020-07-20 08:45:27 +02:00
Tobias Koppers 555db6a547 remove Compilation.modifyHash
refactor HMR Plugin to better support module hashes

fixes bug that causes empty HMR manifest
remove HotModuleReplacementPlugin multiStep
2020-07-09 09:02:38 +02:00
Ivan Kopeykin 4cd526f970 hmr support update
- import.meta.hot to import.meta.webpackHot
- create separate tests for import.meta.webpackHot
- remove HMRApiDependency in favor of ConstDependency
2020-06-24 17:22:28 +03:00
Ivan Kopeykin 1beb4e5707 support import.meta 2020-06-23 01:03:52 +03:00
Ivan Kopeykin 104845a419 support import.meta.hot 2020-06-22 18:49:57 +03:00
Tobias Koppers d6f6025a5a make sure that the callback function in module.hot.accept is parsed
fixes #11057
2020-06-18 15:09:08 +02:00
Tobias Koppers 49752a06a8 cleanup asset processing
deprecate writing to compilation.assets after sealing.
merge all asset processing into single hook with stages.
Deprecate additionalChunkAssets and optimizeChunkAssets.
Redirect additionalAssets, optimizeAssets to processAssets for backward-compat.
Remove finishAssets hook without deprecation as it was not in v4.
2020-05-22 10:39:21 +02:00
Tobias Koppers 50ec72a6ca use the full hash on modules that need the full hash of the compilation
use getFullHash runtime module for updating the hash in HMR
2020-04-30 17:57:01 +02:00
Tobias Koppers b9c50fdb09 fix jsdoc documentations 2020-04-28 19:42:58 +02:00
evilebottnawi 3a118ff1cf chore: setup cspell 2020-03-13 12:13:55 +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 b079429ec8 use correct string or number form of chunk id in HMR 2020-01-15 11:19:25 +01:00
Erik van der Bas - PC 70e9be9158 Assign fallback ChunkGraph to HotUpdateChunks 2019-12-16 13:21:39 +01:00
Tobias Koppers 497b65e122 run prettier 2019-11-15 10:56:01 +01:00
Tobias Koppers acff6ec992 move BasicEvaluatedExpression and JavascriptParserHelpers to javascript directory 2019-10-22 09:27:52 +02:00
evilebottnawi 8198ffb3e6 refactor: code 2019-10-22 00:14:05 +02:00
Tobias Koppers ddc3dae0e6 refactor Module.source() and Module.getRuntimeRequirements() into Module.codeGeneration
add code generation phase to Compilation
add `output.iife` options to remove iife wrapper
add `experiments.outputModule` which enabled `output.module`
add `output.module` which sets defaults to `output.iife: false`, `output.libraryTarget: "module"`, `output.jsonpScriptType: "module"`, `terserOptions.module: true`
add `output.module` example
improve runtime requirements needed by ConcatenatedModule
add entry inlining, which inlines entry module code into runtime scope (only when safe)
make whole bundle strict when all modules are strict
2019-10-08 23:59:48 +02:00
Tobias Koppers 53f68c9e7b update deprecated usage of chunk and main templates 2019-10-08 23:46:33 +02:00
Tobias Koppers 69a545c444 Deprecate MainTemplate, ChunkTemplate, ModuleTemplate
move logic and hooks to JavascriptModulesPlugin
2019-10-08 23:46:26 +02:00
Tobias Koppers e116d18544 Merge tag 'v4.40.3' into next
4.40.3
2019-09-25 23:51:38 +02:00
Tobias Koppers 1c4138d6ac HMR plugin should only affect the root compilation 2019-09-23 11:42:48 +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 758269e814 add emit/updateAsset to Compilation
add asset info with
* immutable for long term cache-able asset
* size for the asset size in bytes
* development for devtools
* hotModuleReplacement for HMR assets

show asset info in stats
2019-09-11 14:43:42 +02:00
Tobias Koppers ab169893a1 refactor Parser to allow variable tagging
use variable tagging in harmony pluging (instead of magic renaming)
Parser no longer calls hooks.expression for x in `x = ...`, hooks.pattern is called instead
remove rootName argument from hooks.expressionMemberChain and hooks.callMemberChain
2019-09-03 14:17:46 +02:00
Tobias Koppers 3cbdb703fc NullFactory is not required 2019-08-07 16:14:03 +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
Florent Cailhol b12f24d20c Update hook types 2019-05-10 09:52:22 +02:00
Tobias Koppers c006675dd9 remove main template hooks for HMRPlugin 2018-11-29 17:14:40 +01:00
Tobias Koppers 9d91861592 Refactor HMR for runtime modules
fixed a few HMR bugs
allow other module types for HMR
made HMR more flexible
2018-11-29 16:22:29 +01:00
Tobias Koppers fa0ec849bd replace renderCurrentHash with RuntimeGlobals.getFullHash 2018-11-29 16:19:22 +01:00
Tobias Koppers f770143164 Provide module when using module.hot 2018-11-29 16:07:21 +01:00
Tobias Koppers 0232674f9c Initial runtime module work 2018-11-29 16:03:32 +01:00
Florent Cailhol 3157f5dfb4 Add hook map types 2018-11-12 14:26:33 +01:00
Florent Cailhol 3766869c48 Move normalModuleLoader hook 2018-11-12 14:26:32 +01:00
Tobias Koppers eb28697419 move magic property names on __webpack_require__ into RuntimeGlobals file 2018-11-05 15:28:34 +01:00
Tobias Koppers 4f813e28a9 remove customizability of __webpack_require__ function name 2018-11-05 13:13:05 +01:00
Tobias Koppers 31e189fcde Merge tag 'v4.24.0' into next
4.24.0
2018-11-02 18:02:39 +01:00
hztianxiang d66cce2601 add test case by this change 2018-10-30 15:49:48 +08:00
hztianxiang c5fff759ee fix lint 2018-10-29 20:39:59 +08:00
hztianxiang a5e1f30c6b @ fix 8297 issues 2018-10-29 20:25:06 +08:00