Alexander Akait
17b9d03f27
fix: a lot of types
2025-04-07 16:09:05 +03:00
alexander.akait
055737dc0c
refactor(types): more
2023-05-21 23:31:30 +03: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
91cc17b438
register exports in DependencyTemplates
2020-09-15 12:35:38 +02:00
Tobias Koppers
47344e7e77
move concatenation logic to HarmonyExportSpecifierDependency and HarmonyExportImportedSpecifierDependency
2020-09-15 12:35:13 +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
a105b663e9
remove unneeded runtime requirements
2020-02-21 12:21:26 +01:00
Tobias Koppers
f68bb833d2
Merge export getters in a module into single statement
2019-08-23 14:07:01 +02:00
Tobias Koppers
7c37a6a972
handle runtime requirements
2018-11-29 16:07:17 +01:00
Tobias Koppers
dda3c03b8d
Refactor getInitFragments to a property in templateContext and apply method
...
Having only a single method in DependencyTemplate makes it easier to override
2018-11-16 16:40:03 +01:00
Tobias Koppers
eb28697419
move magic property names on __webpack_require__ into RuntimeGlobals file
2018-11-05 15:28:34 +01:00
Tobias Koppers
a852828279
add persistent caching prototype
2018-10-17 21:25:39 +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
d6f8e49c3a
refactor getInitFraments to take TemplateContext
...
add a hack to include the current module as property in source
later we will refactor DependencyTemplate.apply to take a TemplateContext too
2018-07-30 23:07:50 +02:00
Tobias Koppers
c5c4f6bdd3
remove DependencyTemplate.getInitFragments.source
2018-07-30 22:42:01 +02:00
Tobias Koppers
e79d4e002b
add stage to InitFragment
2018-07-30 22:39:04 +02:00
Florent Cailhol
6ea5a4ad22
Add types
2018-07-30 22:37:10 +02:00
Florent Cailhol
dcebd57aa4
Replace harmonyInit calls by InitFragments
2018-07-30 22:34:18 +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
Florent Cailhol
f1092ad516
Update prettier toolchain
2018-03-26 16:56:10 +02:00
Tobias Koppers
5238159d21
run prettier on existing code
2018-02-25 02:00:20 +01:00
Tobias Koppers
758a388f69
pass runtimeTemplate to DependencyTemplate
...
move outputOptions and requestShortener into runtimeTemplate
2017-12-11 17:59:32 +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
5a814c09d3
Merge branch 'master' into next
...
# Conflicts:
# lib/FunctionModuleTemplatePlugin.js
# lib/dependencies/HarmonyExportDependencyParserPlugin.js
# lib/dependencies/HarmonyExportImportedSpecifierDependency.js
# lib/dependencies/HarmonyModulesHelpers.js
# lib/optimize/ConcatenatedModule.js
# test/HarmonyModulesHelpers.test.js
2017-10-09 21:13:18 +02: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
5c489b6c5d
Refactor harmony modules
...
separate side effects from specifier
fixes TDZ for export let/const
bigger bundles are caused by correct export const/let behavior
BREAKING CHANGE: Internal have changed. Plugins could rely on them.
2017-09-14 09:44:32 +02: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
c3fdc4da01
refactor HarmonyExportSpecifierDependency to es6 ( #3729 )
2017-01-04 12:42:15 -06:00
Tobias Koppers
6d1f3e3fa3
fixes #2895
2016-09-07 09:59:12 +02:00
Tobias Koppers
ce76b6e992
emit more pretty es6 runtime code
2016-09-07 09:46:13 +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
Tobias Koppers
1ad7e7c0be
fixes #2618
...
This increases bundle size for non-es6-modules users.
But decreases size of es6-modules users.
We should fix this later.
2016-06-08 00:22:43 +02:00
Nathan Caza
ba80387047
Fix issue #2221 by adding a newline character to generated code
...
Add a newline prefix to the code generated for non-immutable harmony exports. This
resolves a case where export statements without a trailing semicolon would cause
webpack to generate a bundle with invalid syntax.
2016-03-22 19:52:51 +00:00
Tobias Koppers
8cb0ee7b85
mangle harmony export names
2016-02-03 23:40:41 +01:00
Tobias Koppers
6bc45850cd
fixed #1840
2016-01-06 21:39:50 +01:00
Tobias Koppers
bde8636d92
behave according to precedence rules from spec
...
fixed #1792
2015-12-23 16:24:45 +01:00
Tobias Koppers
f5533c1cd2
fixed #1784
2015-12-22 10:53:49 +01:00
Tobias Koppers
cabe7866fa
HMR with harmony modules
2015-11-01 23:27:53 +01:00