Commit Graph

46 Commits

Author SHA1 Message Date
alexander.akait b9d9a5d9ff style: improve style of code 2024-08-02 19:32:14 +03:00
alexander.akait 78075cac67 refactor: types more 2023-05-22 01:28:57 +03:00
alexander.akait 055737dc0c refactor(types): more 2023-05-21 23:31:30 +03:00
alexander.akait b8e0bcf8b4 fix: regression 2023-05-17 21:47:54 +03:00
Ben Worline 2b2fed5880 Initial take 2023-05-04 20:41:15 -07:00
alexander.akait 4f6dc32d38 chore: improve types 2023-04-21 19:22:33 +03:00
Tobias Koppers 83c8180c7d prioritize static reexport over runtime reexport for target determination
this allows to optimize cases where empty modules are reexported e. g. caused by typescript type-only exports
2021-04-06 21:36:43 +02:00
Tobias Koppers e1a405e3c2 prettier 2020-11-26 10:52:55 +01: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 39e1a7e4c7 move magic names to constants in ConcatenationScope
improve types
2020-09-15 12:36:06 +02:00
Tobias Koppers 91cc17b438 register exports in DependencyTemplates 2020-09-15 12:35:38 +02:00
Tobias Koppers fc551fa6f3 move concatenation logic to HarmonyExportExpressionDependency 2020-09-15 12:35:21 +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 ba83554d60 keep function declarations when using export default
fixes #10870
2020-05-12 22:49:33 +02:00
Tobias Koppers 7044757751 cleanup, generalization 2020-04-08 22:15:02 +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 7c37a6a972 handle runtime requirements 2018-11-29 16:07:17 +01:00
Tobias Koppers a852828279 add persistent caching prototype 2018-10-17 21:25:39 +02:00
Tobias Koppers 19d60ba0cd Merge tag 'v4.19.1' into next
4.19.1
2018-09-18 10:13:54 +02:00
Tobias Koppers e08f71c0ef keep/restore comments in export default
fixes #8039
2018-09-17 14:58:55 +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
Tobias Koppers 831e71c797 make argument of DependencyTemplate an object 2018-08-02 16:07:29 +02:00
Tobias Koppers f5a457ffd4 add ExportsSpec type to getExports 2018-08-02 16:04:10 +02:00
Tobias Koppers cf5f1d723c format existing code 2018-07-30 21:29:21 +02:00
Tobias Koppers eba85a491d add types to Dependency and subclasses 2018-07-25 09:33:48 +02:00
Tobias Koppers fcf3f63f0e add DependencyTemplate base class and inherit types from this
fix a few typing issues
2018-07-23 20:11:59 +02:00
Florent Cailhol 5c8a4bb89f Unify Dependency#getExports result 2018-04-04 13:53:55 +02:00
Tobias Koppers 5238159d21 run prettier on existing code 2018-02-25 02:00:20 +01:00
Tobias Koppers 00f2b5ede7 advanced module type refactoring
added json type
.mjs default to javascript/esm type
adjusted parser plugins to react on module type
2017-11-11 19:27:19 +01:00
Tobias Koppers 9357ae0254 Refactor precendence rules for harmony exports for better performance
fixes #5763
2017-10-09 15:28:59 +02:00
Tobias Koppers e8b3170e29 fixes #4179 2017-02-06 13:51:00 +01:00
Tobias Koppers a7a41848c7 remove error for CommonJs/AMD in ESM
there are too many weird modules

detect harmony modules before parsing
exports is now undefined in ESM
module.exports is now read-only in ESM and returns undefined
define is now undefined in ESM
#3917
2017-01-15 01:44:26 +01:00
Tobias Koppers 8e69a80847 code linting 2017-01-11 12:29:01 +01:00
timse ce9c9e27bc refactor harmonyExportExpressionDependency to es6 (#3710) 2017-01-04 10:21:57 -06: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
Tobias Koppers 5189d9a321 fixed #2019 2016-02-09 14:27:21 +01:00
Tobias Koppers 8cb0ee7b85 mangle harmony export names 2016-02-03 23:40:41 +01:00
Tobias Koppers ede0166a75 fixes #1600 2015-11-14 22:41:06 +01:00
Tobias Koppers cabe7866fa HMR with harmony modules 2015-11-01 23:27:53 +01:00
Tobias Koppers 6307ed72ac Added experimental usage tracking of ES6 modules and example 2015-10-21 21:05:01 +02:00
Tobias Koppers 21e370cad0 added missing constructor properties 2015-10-18 10:44:51 +02:00
Tobias Koppers f4b9d5f57a Merge branch 'master' into webpack-2
Conflicts:
	lib/Compilation.js
	lib/Compiler.js
	lib/DefinePlugin.js
	lib/HotModuleReplacementPlugin.js
	lib/Parser.js
	lib/node/NodeSourcePlugin.js
	lib/node/OldNodeWatchFileSystem.js
	package.json
2015-04-27 20:22:13 +02:00
Tobias Koppers 5f77afe5f4 ES6 parser, ES6 modules 2015-01-12 17:45:30 +01:00