Tobias Koppers
7661ad868a
generate code that executes depending on runtime
...
fixes #11770
2020-10-27 06:30:49 +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
71cf7f4dc8
add support for reexporting in CommonJS
...
and necessary refactoring + fixes for that
2020-08-17 21:32:47 +02:00
Tobias Koppers
b741dde35e
remove obsolete code related to import await
2020-08-14 10:51:07 +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
78920aa689
ignore linking errors when the imported module has errors
2020-07-07 17:54:15 +02:00
Ivan Kopeykin
198e51a485
Merge branch 'master' into exports-field
...
# Conflicts:
# lib/dependencies/ImportDependency.js
# lib/sharing/ConsumeSharedPlugin.js
# lib/sharing/ProvideSharedPlugin.js
# types.d.ts
2020-06-16 21:16:41 +03:00
Pushkar DK
31e3369a73
Add 'webpackExports' & make only referenced exports available in import()
2020-06-06 00:11:21 +05:30
Ivan Kopeykin
b7098ae52b
define dependency category as string instead of enum
2020-05-27 22:57:45 +03:00
Ivan Kopeykin
dea031475e
add dependency category property
2020-05-26 23:56:24 +03:00
Tobias Koppers
a66290a15f
add support for async externals
...
add `promise` external
add `import` external (uses import())
add `output.importFunctionName` option to change the `import()` function name
allow for inline external type when using arrays
fix some typings
fix namespace object behavior when using system external and accessing nested property
fix interop behavior for async dynamic modules
2020-05-19 17:25:43 +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
b53a128513
provide better error message when a export name was not found
2020-01-15 22:44:06 +01:00
Tobias Koppers
bbace17380
generate await code for import without await too
...
fixes #10194
2019-12-30 20:34:36 +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
ae261ed4c1
move default object redirect logic into separate meta property
2019-12-06 11:12:26 +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
497b65e122
run prettier
2019-11-15 10:56:01 +01:00
Tobias Koppers
09d182132a
rename reference exports constants
2019-10-30 07:57:55 +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
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
1d72a05fed
Merge tag 'v4.36.0' into next
...
4.36.0
2019-07-17 16:02:33 +02:00
Tobias Koppers
6db94536ad
Merge tag 'v4.34.0' into next
...
4.34.0
2019-06-13 10:51:12 +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
a14c6fb3ba
refactor async logic to break cycles
2019-06-05 14:17:15 +02:00
Tobias Koppers
cfc1d62bd0
add missing info to hash
2019-06-05 11:41:16 +02:00
Tobias Koppers
1977cb1036
move async module flag to ModuleGraph
2019-06-05 11:15:25 +02:00
Tobias Koppers
49eacbc4b4
generate more optimized code for cases with a single promise or no top-level-await
2019-06-04 23:29:09 +02:00
Tobias Koppers
4d3057dac6
fix persistent caching of awaited imports and exports
2019-06-04 23:29:07 +02:00
Tobias Koppers
de61023616
add side-by-side wasm support based on async modules
...
type: "webassembly/async-experimental"
remove i64 importing limitation since it will have BigInt integration eventually
update wasm example
2019-06-04 23:28:56 +02:00
Tobias Koppers
903084f9aa
WIP prototype of top-level-await and async modules based on import await
2019-06-04 23:25:35 +02:00
Tobias Koppers
1b685d1de8
change DependencyReference.importedNames to be always an string[][]
2019-05-29 11:55:07 +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
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
3618cc1b3c
remove originModule from Dependencies and add parent module to ModuleGraph
2018-08-07 14:20:53 +02:00
Tobias Koppers
c4e0a9f72e
Move Module.used and Module.usedExports into ModuleGraph
2018-08-06 21:04:01 +02:00
Tobias Koppers
381e2db200
replace Module.reasons and Dependency.module with ModuleGraph
2018-08-02 17:54:44 +02:00
Tobias Koppers
11e127d162
pass moduleGraph along with multiple methods
2018-08-02 17:54:42 +02:00
Tobias Koppers
831e71c797
make argument of DependencyTemplate an object
2018-08-02 16:07:29 +02:00
Tobias Koppers
f68c1f7ab6
add additional arguments to updateHash
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