Tobias Koppers
21c08d56ec
avoid allocation of meta info for dependencies when unused
2021-01-27 13:37:34 +01:00
Tobias Koppers
97b83161d9
move responsibility of exports info and connected modules hashing from Dependencies to Module
...
fixes a bug where modules are incorrectly cached when exports info of connected modules change
2021-01-24 21:36:36 +01:00
Tobias Koppers
4ec418c8ee
allow inner graph shaking for new URL()
...
fixes #11818
2021-01-19 13:31:55 +01:00
Tobias Koppers
7cc206974c
upgrade typescript major version
2020-11-30 08:42:35 +01:00
Tobias Koppers
c7ea63875c
improve side effects analysis to report imported and reexports symbols as side-effect-free
...
add bailout messages for side effects
2020-11-28 18:10:27 +01:00
Tobias Koppers
e1a405e3c2
prettier
2020-11-26 10:52:55 +01:00
Tobias Koppers
19f51535ca
merge multiple import statements with different conditions correctly
...
improve hashing when conditional runtime evaluation is involved
add test cases
2020-10-27 06:48:54 +01:00
Tobias Koppers
8e562aa260
fix some nitpicks with active state
2020-10-07 09:36:41 +02:00
Tobias Koppers
fcca1d649d
analyse source code for side effects
...
mark the module as side effects free in such cases
allow 3rd state TRANSITIVE_ONLY to be side-effect-free but dependencies should still be included (for mini-css-extract-plugin)
2020-10-06 14:10:29 +02:00
Tobias Koppers
8db617db80
avoid error when target module failed
2020-09-25 10:53:12 +02:00
Tobias Koppers
39e1a7e4c7
move magic names to constants in ConcatenationScope
...
improve types
2020-09-15 12:36:06 +02:00
Tobias Koppers
21e202eb24
move concatenation logic to HarmonyImportSpecifierDependency
2020-09-15 12:35:30 +02:00
Ivan Kopeykin
a3fc25cadb
refactor asiSafe flag in dependencies
2020-08-29 17:00:03 +03:00
Tobias Koppers
71cf7f4dc8
add support for reexporting in CommonJS
...
and necessary refactoring + fixes for that
2020-08-17 21:32:47 +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
Pushkar DK
31e3369a73
Add 'webpackExports' & make only referenced exports available in import()
2020-06-06 00:11:21 +05:30
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
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
84b6817f60
consistency and bugfixes for reexporting json
2019-11-05 10:39:12 +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
Tobias Koppers
09d6301712
Move weak flag from DependencyReference to Dependency
2019-10-30 07:48:26 +01:00
Tobias Koppers
a5b3177fc0
conditional import specifiers do not generate import statements when exports are unused
2019-09-06 14:49:05 +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
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
0bce5fd8d5
detect ASI and generate more efficient code when no semicolon need to be inserted
2019-08-22 23:03:38 +02:00
Tobias Koppers
7ba057f787
Reduce memory usage for warnings/errors by avoiding empty arrays
2019-08-07 16:14:02 +02:00
Tobias Koppers
2c02db6b81
Avoid JSON.stringify for performance reasons
2019-07-26 13:59:11 +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
8d5ad83b32
simplify code
2019-06-12 15:16:54 +02:00
alreadyExisted
df5e118da4
fix(mjs): remove unused namespace build errors
2019-06-12 14:46:39 +02:00
Tobias Koppers
ba77df23dd
add warnings for non-default json module imports
...
unify linking error generation
2019-06-12 14:33:49 +02:00
Tobias Koppers
fd4b3c503a
pretty files
2019-06-09 11:23:42 +02:00
Tobias Koppers
979e6e40a8
fix edgecase with script this context
2019-05-29 21:59:09 +02:00
Tobias Koppers
1b685d1de8
change DependencyReference.importedNames to be always an string[][]
2019-05-29 11:55:07 +02:00
Tobias Koppers
43bc7a306e
Refactor to track nested exports
...
Harmony dependencies track access to nested properties
Flag nested exports
2019-05-29 11:55:00 +02:00
Tobias Koppers
924daa105b
Use simpler/faster hash function to get a hash number
...
Use deterministic mangled names for exports
refactor assignDeterministicIds
rename __webpack_init__ function in wasm to ""
fix bug with incorrectly cached StaticExportsDependency
fix bug in hash logic of Module
2019-02-20 22:41:07 +01:00
Tobias Koppers
eac069a46b
move isProvided into ModuleGraph
2018-12-31 12:51:35 +01:00
Florent Cailhol
a42922f663
Move provided exports to the module graph
2018-12-31 12:28:51 +01:00
Tobias Koppers
bf1fc171ba
runtime requirement for RuntimeGlobals.moduleFactories
2018-11-29 16:08:52 +01:00
Tobias Koppers
a09b9a5b8f
refactor call and callArgs for HarmonyImportSpecifierDependency
2018-10-17 21:25:41 +02:00
Tobias Koppers
a852828279
add persistent caching prototype
2018-10-17 21:25:39 +02:00
Tobias Koppers
6d09410a26
remove parserScope
...
it's not serializable and not needed anyway
2018-09-27 13:40:58 +02:00
Tobias Koppers
02b15a1b46
pass chunkGraph to updateHash instead of moduleGraph
...
pass chunkGraph to compareModulesById instead of moduleGraph
pass chunkGraph to methods of RuntimeTemplate
use comparators from module at some places
2018-08-28 12:06:53 +02:00
Tobias Koppers
0f1f69a9d6
hide id overriding in HarmonyImportSpecifierDependency
2018-08-21 11:06:59 +02:00
Tobias Koppers
3bb5263bfd
move methods from Module into ModuleGraph
2018-08-21 11:04:40 +02:00
Tobias Koppers
3618cc1b3c
remove originModule from Dependencies and add parent module to ModuleGraph
2018-08-07 14:20:53 +02:00
Tobias Koppers
d6cf42e4c2
merge used with usedExports
...
usedExports = false now means module is not used
2018-08-06 21:05:11 +02:00
Tobias Koppers
c4e0a9f72e
Move Module.used and Module.usedExports into ModuleGraph
2018-08-06 21:04:01 +02:00