Commit Graph

46 Commits

Author SHA1 Message Date
Tobias Koppers 31aefbf576 avoid setting export target too often 2020-09-15 12:36:20 +02:00
Tobias Koppers f9fe121fc8 improve and add statistics 2020-08-14 10:51:12 +02:00
Tobias Koppers f7c5087b3a fix bug in target tracking 2020-08-12 23:17:42 +02:00
Tobias Koppers 9b80cde76c store multiple targets per ExportInfo
resolve target when reading
2020-08-12 21:41:03 +02:00
Tobias Koppers 163e7674a0 track the target binding of harmony reexports
display target binding in module info header
check conflicting star exports (fixes #7562) when statically known
2020-08-11 20:13:01 +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 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 fdf43eab16 Connect more info about exports when using export * 2020-05-19 03:16:21 +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 c94aea82cc enable export mangling for system.js externals
add __esModule flag only when needed
2020-03-05 14:07:55 +01:00
Tobias Koppers e96695a18a add more time logging 2020-01-30 16:10:56 +01:00
Tobias Koppers 14ee25cd0a add support for tree-shaking JSON modules 2019-11-05 10:37:59 +01:00
Tobias Koppers af75dcb0e1 remove comment 2019-10-28 14:10:59 +01:00
Tobias Koppers f68bb833d2 Merge export getters in a module into single statement 2019-08-23 14:07:01 +02:00
Tobias Koppers ab280135b1 add canMangle flag to getExports 2019-06-12 14:33:29 +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 921b295bc9 Create ExportsInfo and move provided exports and mangle info into this new object 2019-01-28 08:38:34 +01:00
Tobias Koppers bfc04315ef add type comment 2018-12-31 12:42:39 +01:00
Tobias Koppers b5db48291b add caching to FlagDependencyExportsPlugin 2018-12-31 12:29:01 +01:00
Florent Cailhol a42922f663 Move provided exports to the module graph 2018-12-31 12:28:51 +01:00
Tobias Koppers 0ff1a4f8f8 Merge tag 'v4.27.0' into next
4.27.0
2018-12-04 11:02:26 +01:00
Tobias Koppers 2f4296e8d9 fix a bug which causes incorrect providedExports for cached modules
Always update providedExports when they have dependencies

fixes #8455
2018-12-04 09:51:54 +01:00
Tobias Koppers f5a457ffd4 add ExportsSpec type to getExports 2018-08-02 16:04:10 +02:00
Florent Cailhol 71016b1433 Remove DependencyBlockVariable 2018-07-30 22:38:13 +02:00
Tobias Koppers cf5f1d723c format existing code 2018-07-30 21:29:21 +02:00
Tobias Koppers 5238159d21 run prettier on existing code 2018-02-25 02:00:20 +01:00
Tobias Koppers 53a1d6c7b5 replace harmonyModule flag with exportsType 3-state
exportsType falsy: It's non-harmony module
exportsType "namespace": It's a harmony module, the exports is the namespace object
exportsType "default": It's a harmony module, the exports is the default exports, named exports are properties of the default export
2017-12-22 19:42:41 +01:00
Tobias Koppers c68f224272 move providedExports into buildMeta 2017-12-12 17:01:03 +01:00
Tobias Koppers ffb977fed4 refactor meta -> buildMeta, add factoryMeta
add compat layer to Module.meta
2017-12-12 16:57:50 +01:00
Florent Cailhol 36c690d37f Use tapable instead of 'plugin' 2017-12-08 14:23:31 +01:00
Tobias Koppers ccd6bb5193 improve FlagDependencyExportsPlugin performance and memory usage 2017-12-01 11:27:03 +01:00
Tobias Koppers f7c2f8e470 Update code style to arrow functions 2017-11-08 11:56:01 +01:00
Tobias Koppers d6a7594d38 harmony modules without exports have no exports instead of unknown 2017-06-14 22:46:10 +02:00
Tim Sebastian 9af70d849c use set instead of array to reduce lookup time
this cuts time by ~2/3
2017-03-14 23:46:50 +11:00
Tim Sebastian dc53b1e4fd remove unused parameter 2017-03-14 22:54:03 +11:00
Tobias Koppers 9df92320cd reverted minor performance regression 2017-02-08 09:01:59 +01:00
Tim Sebastian 707ffe65f0 improve readability in FlagDependencyExportsPlugin - thanks @wtgtybhertgeghgtwtg 2017-02-05 14:03:34 +11:00
Tim Sebastian 60f73839d1 change how array is assigned and use const in FlagDependencyExportsPlugin 2017-02-05 10:25:12 +11:00
Tobias Koppers 4f052fe428 minor improvements 2017-01-25 23:23:20 +01:00
Shubheksha Jalan 20c39015f2 refactor(ES6): upgrade FlagDependencyExportsPlugin to ES6 2017-01-10 16:29:56 +05:30
Diogo Franco (Kovensky) d5a7cf39bb Update code to pass lint 2016-11-21 09:08:54 +09:00
Tobias Koppers 37066fc692 fix another bug observed in #2977 2016-09-09 14:50:14 +02:00
Tobias Koppers c08d1b4f89 fixes #2977 2016-09-09 14:20:29 +02:00
Tobias Koppers 65b70bf5ed finished refactory of tree shaking
changes format for dll manifest

#2953
fixes #2959
2016-09-07 09:44:53 +02:00
Tobias Koppers 19eabc7bb6 track which exported are provided by the modules
star export is filtered by provided exports

fixes #2953
2016-09-05 23:41:03 +02:00