Commit Graph

269 Commits

Author SHA1 Message Date
Tobias Koppers d6e637f33c add "snapshot" configuration to allow to configure how snapshots are created
expose snapshot options for module, resolve, buildDependencies and resolveBuildDependencies
move managedPaths and immutablePaths from config.cache to config.snapshot
add timestamp + hash snapshotting mode
use timestamp + hash mode by default in production and for buildDependencies
2020-08-26 01:27:13 +02:00
Tobias Koppers 8ee39ac3ac fix dependencies when snapshot is missing 2020-08-24 20:37:12 +02:00
Tobias Koppers cee47dc867 Store cache dependencies inside of Snapshot to reduce cache size 2020-08-24 18:16:54 +02:00
Ivan Kopeykin 4fc44a3398 add more types 2020-08-02 23:47:54 +03:00
Tobias Koppers ca369f23c5 do cache related tasks after calling handler in watching
improve progress output
2020-08-01 09:00:17 +02:00
Tobias Koppers 77cdce7393 remove unused methods, improve code coverage 2020-07-29 11:14:26 +02:00
Tobias Koppers 1265765141 polish, types 2020-07-27 22:41: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 7dad1c1c30 refactor scheme handling into plugins 2020-07-03 17:01:02 +02:00
Ivan Kopeykin d42d2b51df check for Windows absolute url in URLAbsoluteSpecifier util 2020-06-29 12:24:44 +03:00
Ivan Kopeykin 89abab2631 add absolute url specifier support 2020-06-26 22:16:27 +03:00
goganchic 19609937c7 implement uri imports 2020-06-05 15:15:10 +03:00
Mohsen Azimi 042b4ee7d4 Use @ts-expext-error 2020-05-12 14:34:29 +02:00
Tobias Koppers 3b49828a18 report better error message when wasm experiment is not enabled
#10788
2020-04-28 20:22:50 +02:00
Nitin Kumar 285529a643
chore: fix typos across the project 2020-03-10 07:29:46 +05:30
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 87ad88174b
Merge pull request #10354 from jeffin143/minor-code-refactor
Minor code refactoring to use destructuring
2020-02-10 13:15:17 +01:00
jeffin143 a50f0d50e6 refactor: make use of destructuring 2020-02-08 03:08:53 +05:30
Tobias Koppers ec5a744b30 Remove "error" and "ignore" from snapshots 2020-01-29 21:32:50 +01:00
jamesgeorge007 974d2495af fix: typo 2020-01-19 13:31:37 +05:30
jamesgeorge007 5506161f5e refactor: use startsWith 2020-01-19 13:29:39 +05:30
jamesgeorge007 357e707e2c refactor: prefer destructuring approach 2020-01-19 13:28:22 +05:30
Tobias Koppers d673e4179b test errors message, allow custom names in schema 2020-01-17 12:17:53 +01:00
Tobias Koppers f9846f1f91 improve code, remove unneeded old stuff 2020-01-16 14:48:52 +01:00
evilebottnawi 4e808cb613 feat: getOptions util for loader 2020-01-16 11:43:26 +01:00
Tobias Koppers c80bae2959 faster cache access of contextify 2020-01-15 11:20:22 +01:00
Tobias Koppers 73978b1463 handle sourceRoot during source map contextify 2019-12-27 15:23:23 +01:00
Tobias Koppers 2f3da77d38 Introduce a Parser base class to improve Parser types
Parser.parse must be always sync
make JSON and WASM modules strict

fix inherit-types tooling to omit static methods
2019-11-30 01:36:28 +01:00
Tobias Koppers bf6680ec0f bugfixes, nitpicks 2019-11-26 21:24:41 +01:00
Tobias Koppers 317da38171 move data url condition to parser
avoid calling dataUrl function repeated
remove cache to avoid memory leak
include data url decision in module hash
refactor code for readablility
2019-11-26 15:43:58 +01:00
Sergey Melyukov bdc61abf82 refactor: merge generators in asset modules 2019-11-26 15:42:37 +01:00
Tobias Koppers 1cd9ec58aa track dependencies when calling resolve from loader 2019-11-25 22:10:47 +01:00
Tobias Koppers a58717e379 types for NormalModule constructor 2019-11-20 12:43:57 +01:00
Tobias Koppers 55914b2e46 Generator.generate may return null 2019-11-20 12:43:56 +01:00
Tobias Koppers b90f3e14a1 upgrade webpack-sources
make source maps and source names context independent

add enhanced-resolve declarations
add types to Module.build
fix tooling for import order to support import renaming
add support for concatenated modules in eval source maps
2019-11-12 08:59:08 +01:00
Tobias Koppers 5abf55b1af allocate presentationalDependencies array only when needed 2019-11-10 21:05:28 +01:00
Tobias Koppers c5483fa7ab allocate NormalModule._sourceSizes only when needed 2019-11-10 21:05:19 +01:00
Tobias Koppers ed81ad0fa4 allocate warnings and errors arrays only when needed 2019-11-10 21:05:16 +01:00
Tobias Koppers a877cd51d1 add presentational dependencies which are cheaper, but allow only templating 2019-10-30 07:49:20 +01:00
Tobias Koppers ac9fca474a avoid creating an object for performance reasons 2019-10-09 13:36:44 +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 e116d18544 Merge tag 'v4.40.3' into next
4.40.3
2019-09-25 23:51:38 +02:00
Daniel Playfair Cal 2aef0b615b Memoize NormalModule.size() 2019-09-20 10:44:49 +10: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 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 e877e0ec91 Modules don't carry buildDependencies, they add them directly to compilation
buildDependencies should not be stored/cached as they are only effective when really build
2019-08-13 18:05:26 +02:00
Tobias Koppers 856235d76f track and config build dependencies 2019-08-12 23:07:41 +02:00
Tobias Koppers c17dfde7a8 Merge tag 'v4.37.0' into next
4.37.0
2019-07-24 10:51:04 +02:00
Tobias Koppers 677ccd90ea small fixes 2019-07-23 09:28:06 +02:00