Commit Graph

860 Commits

Author SHA1 Message Date
Tobias Koppers a4f17775b1 fix dependOn behavior with runtimes, fix runtime passing by entry 2020-07-30 11:18:09 +02:00
Tobias Koppers 1027268fab bugfixes 2020-07-28 10:13:34 +02:00
Tobias Koppers 6e7e145107 linting 2020-07-27 22:59:56 +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 b3466e996b add entry[x].runtime option to allow runtime chunk per entry 2020-07-27 22:40:40 +02:00
Tobias Koppers fd9b399ae9 Create Cache facade to make it easier to use
add missing serializers for classes used in test suite
2020-07-15 11:14:28 +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 25a41fa9bb optimize storage format of ExportMode 2020-07-06 21:40:39 +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 c00fec3aa7
Merge pull request #10964 from pushkar100/feature/lazy-load-named-exports
Lazy loading only required exports from dynamic import()
2020-06-16 15:04:06 +02:00
Tobias Koppers a4ac8f0328 Cleanup 2020-06-10 14:01:24 +02:00
Tobias Koppers 3df380e2d7 add script external
change defaults of ModuleFederationPlugin to var library and script remoteType
allow using empty entry in config
2020-06-04 03:18:07 +02:00
Tobias Koppers fde5b3df11 allow to concatenate modules when used exports are known 2020-05-19 14:42:21 +02:00
Tobias Koppers 5efac22a5c improve side-effects handling for dynamic reexports 2020-05-19 02:08:11 +02:00
Tobias Koppers f06086c53b
Merge pull request #10631 from mohsen1/mohsen--ts3.9
Upgrade to TypeScript 3.9
2020-05-13 17:56:20 +02:00
Tobias Koppers ba83554d60 keep function declarations when using export default
fixes #10870
2020-05-12 22:49:33 +02:00
Mohsen Azimi 042b4ee7d4 Use @ts-expext-error 2020-05-12 14:34:29 +02:00
Tobias Koppers b9c50fdb09 fix jsdoc documentations 2020-04-28 19:42:58 +02:00
Tobias Koppers a643278726 refactor exports info logic always represent exports object instead of namespace object
improve test case
2020-04-22 21:01:29 +02:00
Tobias Koppers cbb6ee6809 test more test cases for typings and fix typing bug 2020-04-21 09:25:55 +02:00
Tobias Koppers 8509a225e9 use bindContextCache more often 2020-04-17 10:54:27 +02:00
Tobias Koppers b38330754f add hooks for walking parts of classes
import handling of classes and expressions
2020-04-09 15:53:59 +02:00
Ivan Kopeykin 411728b146 remove unnecessary condition 2020-04-09 10:39:00 +03:00
Ivan Kopeykin de24d3e69d fix(InnerGraph) for ClassExpression 2020-04-09 10:28:46 +03:00
Ivan Kopeykin cc99b42293 fix InnerGraph for super expression 2020-04-09 01:33:55 +03:00
Ivan Kopeykin ccea9ef4ce fix for #10616 2020-04-09 01:32:34 +03:00
Tobias Koppers 7044757751 cleanup, generalization 2020-04-08 22:15:02 +02:00
Ivan Kopeykin 38304f95cc increase priority of PureExpressionDependency 2020-04-08 22:13:14 +02:00
Ivan Kopeykin 660c7a4b89 fix(InnerGraph): #10623 2020-04-08 22:13:12 +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
Nitin Kumar 285529a643
chore: fix typos across the project 2020-03-10 07:29:46 +05:30
Tobias Koppers 6e4b478940 improve exports hoisting in concatenated modules
#10409
2020-02-21 20:57:48 +01:00
Tobias Koppers fdeded05f4 hoist exports to the top of a concatenated module
to handle circular dependencies with non-concatenated modules

fixes #10409
2020-02-21 12:21:32 +01: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 edecce586b handle dependOn at start of buildChunkGraph
handle jsonp chunk loading correctly for child entrypoints
add error message for incorrect dependOn
2020-02-11 09:12:13 +01:00
Tobias Koppers 8cbb4ed72c remove dependencies from inner graph
only use TopLevelSymbols in graph
2020-02-05 11:06:27 +01:00
Tobias Koppers 1d2d1085bd use jsdoc object notation 2020-02-05 10:17:05 +01:00
Sergey Melyukov a9b72d4b40 Merge remote-tracking branch 'upstream/master' into inner-graph-usage-callback 2020-02-04 15:31:06 +03: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 e96695a18a add more time logging 2020-01-30 16:10:56 +01:00
Tobias Koppers e6113e9787 optimize SideEffectsFlagPlugin performance 2020-01-30 16:10:53 +01:00
Sergey Melyukov 907ed08519 usage callbacks on inner graph 2020-01-30 04:34:30 +03:00
Tobias Koppers 3be270d91d fix bug with renaming of variables in concatenated modules
fixes #10308
2020-01-29 20:57:44 +01:00
Tobias Koppers a488d073c3
Merge pull request #10295 from smelukov/inner-graph-incapsulating
Incapsulate inner graph logic
2020-01-29 14:50:10 +01:00
Tobias Koppers 77abab8c97 cleanup, renaming 2020-01-29 14:24:55 +01:00
Tobias Koppers b40a345451 refactor Persistent Cache
cache is split into multiple .pack files which represent usage of cache items
this allows to only read/deserialize files that are needed
and reduces the need to rewrite .pack files
while still packaging multiple cache items together

lazy (de)serialization system has changed to allow writeLazy and writeSeparate
2020-01-28 11:35:06 +01:00
Sergey Melyukov 432d338f9a incapsulate tag variable 2020-01-27 18:46:23 +03:00
Sergey Melyukov 68a61677dc move flatter algo into InnerGraph 2020-01-27 18:33:40 +03:00
Sergey Melyukov 721ce54bdf incapsulating inner graph logic 2020-01-23 15:59:27 +03:00
Tobias Koppers 1be6dc1dcb
Merge pull request #10286 from smelukov/inner-graph-decouple-parser-state
decouple inner-graph and parser state
2020-01-22 10:03:39 +01:00
Sergey Melyukov 533d7fced7 fix pr comments 2020-01-21 20:50:27 +03:00
Sergey Melyukov 5613a38bb1 decouple inner-graph and parser state 2020-01-21 17:36:22 +03:00
Tobias Koppers 95297186d5 remove Array.prototype.reduce calls to simplify code 2020-01-20 14:41:39 +01:00
Tobias Koppers 131e4177ff remove Array.prototype.reduce calls to simplify code 2020-01-18 19:56:19 +01:00
Tobias Koppers e9948449aa
Merge pull request #10262 from webpack/bugfix/pure-annotation-calls
the pure annotation only applies to function calls
2020-01-16 00:00:19 +01:00
Tobias Koppers 4f1107bcc9 the pure annotation only applies to function calls 2020-01-15 22:54:42 +01:00
Tobias Koppers c80bae2959 faster cache access of contextify 2020-01-15 11:20:22 +01:00
Tobias Koppers aed6ab1d89 improve renaming of variables in concatenated modules
more detailed tracking of conflicted references
to avoid renaming variables when possible

fixes #10168
2019-12-23 21:54:57 +01:00
Tobias Koppers 853ec50b57 bugfixes
allow mangle even if object prototype export names are used
prevent mangling for object prototype export names in CommonJS
only treat Object.defineProperty for top-level this as export
replace Object.defineProperty correctly when value is in brakets
2019-12-21 20:32:25 +01:00
Tobias Koppers dda3279221 Merge tag 'v4.41.4'
4.41.4
2019-12-19 13:55:43 +01:00
Tobias Koppers ab4fa8ddb3
Merge pull request #10146 from liximomo/fix-sideEffects
fix: bundle wrong modules
2019-12-18 17:39:10 +01:00
liximomo 156a0874a9 fix: prevent incorrectly redirect 2019-12-18 17:01:58 +01:00
Sergey Melyukov cd174adeb0 Merge remote-tracking branch 'upstream/master' into inner-graph-eval-used 2019-12-18 16:37:03 +03:00
Sergey Melyukov 05abeee20a pr comments 2019-12-18 16:36:19 +03:00
Tobias Koppers c81963bf6b fixes #10104 2019-12-17 17:23:54 +01:00
Tobias Koppers 33d9f7bdbf bugfix: candiates should only be added when adding was successful 2019-12-17 11:24:23 +01:00
Tobias Koppers 73fd64fc90 refactor
refactor ConcatenatedModule to avoid compilation argument
avoid caching inner modules in ConcatenatedModule
improve performance of ModuleConcatenationPlugin
add ModuleStoreError when storing of module fails
2019-12-16 21:08:32 +01:00
Sergey Melyukov 5d18a8e27d persistent cache for concat modules 2019-12-16 21:06:24 +01:00
Sergey Melyukov 9bca2286ed opt-out inner graph optimization when eval is used 2019-12-16 16:49:01 +03:00
Tobias Koppers 3b4a7455df use parser state instead of module to store harmony/dynamic exports state
this is important for incremental build
2019-12-07 01:04:38 +01:00
Tobias Koppers d9a2b7997a refactor dynamic and harmony exports parser state
bailout when using AMD define
2019-12-06 11:13:15 +01:00
Tobias Koppers dd4d68ac8f use Symbol to flag skipped export names 2019-12-06 11:13:14 +01:00
Tobias Koppers 782e4535ac Refactor how exportsType work
add flagged exportsType for __esModule flagged
add getExportsType to merge strict with exportsType
move CommonJsStuffPlugin into CommonJsPlugin
split CommonJsPlugin into imports and exports part
enable minimal tree shaking for CommonJs imports and exports
2019-12-06 11:13:08 +01:00
Tobias Koppers 32ec03f2b2 fix export mangling for unused default objects 2019-12-06 11:12:27 +01:00
Tobias Koppers 6ef9ea8f27 add two chars to numberToIdentifier 2019-12-06 11:12:07 +01:00
Tobias Koppers 5a01ed8121 rename exportsType named to default
exportsType default doesn't include named exports in strict esm
2019-11-20 12:43:53 +01:00
Tobias Koppers eeafeee32a
Merge pull request #9950 from webpack/dependabot/npm_and_yarn/prettier-1.19.1
chore(deps-dev): bump prettier from 1.18.2 to 1.19.1
2019-11-15 12:05:46 +01:00
Tobias Koppers 497b65e122 run prettier 2019-11-15 10:56:01 +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 61e8b44fb9 allocate Module.factoryMeta only when needed 2019-11-10 21:05:21 +01:00
Tobias Koppers ed81ad0fa4 allocate warnings and errors arrays only when needed 2019-11-10 21:05:16 +01:00
Tobias Koppers efe0c2e610 avoid creating arrays in getConnections 2019-11-10 21:05:05 +01:00
Tobias Koppers 9a07012695 fix problem with accessing the default named export of json 2019-11-05 10:39:14 +01:00
Tobias Koppers 84b6817f60 consistency and bugfixes for reexporting json 2019-11-05 10:39:12 +01:00
Tobias Koppers 14ee25cd0a add support for tree-shaking JSON modules 2019-11-05 10:37:59 +01:00
Tobias Koppers 4479b6c660 add comment, optimize code 2019-10-30 09:35:17 +01:00
Tobias Koppers 9010d8bf77 allow to disable connection
fix bug
2019-10-30 09:35:14 +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 8696017c55 add Dependency.getReferencedExports
remove Dependency.getReference
remove DependencyReference
2019-10-30 07:48:37 +01:00
Tobias Koppers efe3a81325 remove sourceOrder from DependencyReference 2019-10-30 07:48:35 +01:00
Tobias Koppers 8d46b21fad add Dependency.getCondition and conditional ModuleGraphConnections
getDependencyReference is no longer used to check of connection
2019-10-30 07:48:32 +01:00
evilebottnawi 8198ffb3e6 refactor: code 2019-10-22 00:14:05 +02:00
Tobias Koppers b5e8915b14
Merge pull request #9736 from vankop/limit-chunk-count-plugin
fix: Limit chunk count plugin
2019-10-21 09:02:49 +02:00