Commit Graph

834 Commits

Author SHA1 Message Date
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
Tobias Koppers b4d782fb94 remove unused type 2019-10-09 13:54:38 +02:00
Tobias Koppers 3e54494606 remove supportsSymbolsDeconflicting 2019-10-09 11:49:48 +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 7733d2b1c1 fix infinite loop on circular inner graph references 2019-10-07 10:52:35 +02:00
Tobias Koppers f01e7d253b fix handling of circular references in the inner graph 2019-10-02 07:25:12 +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 f7f408372f Merge tag 'v4.41.0' into next
4.41.0
2019-09-26 21:41:52 +02:00
Ivan Kopeykin 97775bcc0a Fix default parameter in LimitChunkCountPlugin constructor 2019-09-25 17:02:57 +03:00
Tobias Koppers 6f1c685071 Improve performance of LimitChunkCountPlugin a lot 2019-09-24 16:32:20 +02:00
Michael Budde 465922fb5f
nit: Don't recompute filename hash 2019-09-18 08:04:58 +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 935830a879 only handle defined variables and imports as pure expressions 2019-09-08 22:29:51 +02:00
Tobias Koppers 786c655751 avoid adding dependencies in pre walk, branch might be skipped 2019-09-08 15:21:00 +02:00
Tobias Koppers ec518945f1 fix edge case in scope analysis
fix double declaration problem in variable declarations
remove TrackingSet
rename StackedSetMap to StackedMap and remove add method
add more scope analysis test
2019-09-05 13:34:16 +02:00
Tobias Koppers 41a6f2af1a fix PureExpressionDependency bug 2019-09-04 09:57:55 +02:00
Tobias Koppers 2e37731988 add analysis for top level symbols, exports and imports
integrates the work of Vincent Chan for GSoC 2018

Co-authored-by: Vincent Chan <cdzos97@gmail.com>
2019-09-03 14:18:40 +02:00
Tobias Koppers 9aba345ae7 fix minor bug in concatenated modules 2019-09-03 14:18:01 +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 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 f68bb833d2 Merge export getters in a module into single statement 2019-08-23 14:07:01 +02:00
Tobias Koppers 1eec744a13 generate more efficient external reference in concatenated modules 2019-08-23 09:26:44 +02:00
Tobias Koppers ddf3566c56 bailed out external ESM in ConcatenatedModule generate property access correctly 2019-08-22 09:58:49 +02:00
Tobias Koppers 24ef835375
Merge pull request #9548 from webpack/refactor-migrate-on-schema-utils
Refactor migrate on schema utils
2019-08-08 13:42:52 +02:00
evilebottnawi 6a99b5316d refactor: migrate on `schema-utils` 2019-08-07 18:10:40 +03:00
Tobias Koppers c21fb4bd58 Add LazySet for file/context/missingDependencies for performance 2019-08-07 16:13:56 +02:00