Commit Graph

599 Commits

Author SHA1 Message Date
Tobias Koppers 195a9408ff improve description 2020-10-22 18:58:14 +02:00
Cronus1007 7f76c2d722 followSymLinks Options Added with the snapshots and typings updated 2020-10-22 19:57:07 +05:30
xiaoxiaojx f25b09f783 feat: libraryTarget add assign-properties 2020-10-11 04:49:40 +08:00
Sergey Melyukov ee0c891c67 (fix): pr comments 2020-10-07 15:30:14 +03:00
Sergey Melyukov 8c2e4f595b Merge remote-tracking branch 'upstream/master' into clean 2020-10-07 14:19:55 +03:00
Sergey Melyukov 132ca09a11 (refactor): CleanPlugin 2020-10-07 13:48:51 +03:00
Sergey Melyukov 6ccec90ef4 (feat): support ignore propery and ignore hook in CleanPlugin 2020-10-02 18:08:03 +03:00
Sergey Melyukov 3649a10756 (fix): linting 2020-09-30 19:02:14 +03:00
Sergey Melyukov 4b04a4b1f5 (feat): add output.clean 2020-09-30 18:33:30 +03:00
Tobias Koppers 68f0dbe748 allow plugins to modify the default size types for splitChunks 2020-09-29 14:34:59 +02:00
Tobias Koppers 4ea79e0683 update enhanced-resolve and webpack-sources
add resolve.preferRelative
set preferRelative for new URL() and new Worker() to fix relative requests
2020-09-28 20:43:03 +02:00
Aaron Tribou 0cf554f537
Merge branch 'master' into bugfix/accept-ignored-regex 2020-09-26 10:16:46 -05:00
Tobias Koppers b8950e8581 output.chunkFilename can be a function 2020-09-25 16:03:05 +02:00
Aaron Tribou e7bf987114
Check-in updates from special-lint-fix 2020-09-20 20:44:46 -05:00
Aaron Tribou 56cc96d88f
Merge branch 'master' into bugfix/accept-ignored-regex 2020-09-20 20:38:39 -05:00
Tobias Koppers ea075be453 add config.ignoreWarnings
deprecate stats.warningsFilter
2020-09-20 22:08:38 +02:00
Tobias Koppers f263359fd8 use output.importMetaName for import.meta 2020-09-18 10:55:37 +02:00
Tobias Koppers 4dc04d1971 Merge branch 'master' into dynamically-resolve-public-path 2020-09-18 10:40:39 +02:00
Aaron Tribou 514cde4fb2
Update watchOptions.ignored description 2020-09-18 00:35:34 -05:00
Aaron Tribou 49460929e0
Allow regex for watchOptions.ignored 2020-09-18 00:19:01 -05:00
Tobias Koppers aadc15e740 update enhanced-resolve for
- imports field support
- resolve.fallback option

recommend resolve.fallback for polyfills
2020-09-16 07:28:32 +02:00
Ivan Kopeykin 580de0873a update publicPath
- support option output.publicPath="auto"
- add test cases
- render import.meta.url for output.scriptType="module"
2020-09-15 00:27:38 +03:00
Tobias Koppers bbdb33a5cf rename output.environment.import -> output.environment.dynamicImport 2020-09-11 23:11:02 +02:00
Tobias Koppers 7e85649492 improve target options
infer target properties from different targets and fill defaults from that

custom targets can now be created via `target: false` and a plugin (similar to the other options)

add stubs from universal chunk/wasm loading and module chunk format

add externalsPresets.electron and externalsPresets.electronRenderer

node.__file/dirname: "eval-only"
2020-09-10 11:42:09 +02:00
Tobias Koppers 48010fb955 replace output.ecmaVersion with output.environment and more detailed flags 2020-09-10 11:12:28 +02:00
Tobias Koppers 730aefef37
Merge pull request #11412 from webpack/experiments/enable-mjs
enable mjs experiment
2020-09-10 10:57:36 +02:00
Tobias Koppers 817c1bf9c7 move default externals from target into externalsPresets option 2020-09-09 15:18:59 +02:00
Tobias Koppers aa67a435a4 refactor wasm loading from target into output.wasmLoading option
allow entry specific wasm loading
2020-09-09 11:20:37 +02:00
Tobias Koppers ed06a7f83a new Worker() support
add support for async anonymous entrypoints from inside the codebase
add worker example
move entry options into Entrypoint and receive them from there
2020-09-08 07:37:20 +02:00
Tobias Koppers 2d4c9da6a6 enable mjs experiment 2020-09-07 23:15:24 +02:00
Tobias Koppers 0afc6a7f48 print entrypoint only when necessary (stats.entrypoints: "auto")
show sizes for entrypoints
2020-09-03 23:29:14 +02:00
Tobias Koppers 8e0c511068 replace hash, version, time and builtAt with build summary at the bottom 2020-09-03 22:12:52 +02:00
Tobias Koppers ce97f40bb7 update test case for changed stats format
fix bug with groupModulesByType flag
rename stats.runtime to stats.runtimeModules
2020-09-02 10:51:10 +02:00
Tobias Koppers 5282f878a1 fix groupModulesByAttributes description 2020-09-01 20:52:36 +02:00
Tobias Koppers 8904dd7b91 rename groupAssetsByStatus to groupAssetsByEmitStatus 2020-09-01 20:52:34 +02:00
Tobias Koppers be021e00f4 add grouping of modules 2020-09-01 18:31:22 +02:00
Tobias Koppers 3ea9400505 add grouping of assets 2020-09-01 18:16:43 +02:00
Tobias Koppers 7381cc0536 move baseUri into chunk loading runtime modules 2020-08-29 01:59:39 +02:00
Tobias Koppers 312e2ab587 Merge branch 'master' into feature/asset-url 2020-08-28 20:54:50 +02:00
Tobias Koppers a7e86c791c remove chunkCallbackName, update snapshots 2020-08-28 10:59:40 +02:00
Tobias Koppers 07d863e14c implement enabledChunkLoadingTypes approach
allow chunkLoading per entry
allow custom library/chunkLoading types
2020-08-28 10:59:37 +02:00
Tobias Koppers d69fadf8e8 add output.chunkLoading option to control chunk loading plugins 2020-08-28 10:58:04 +02:00
Tobias Koppers 805d26b0ae unify config options for jsonpFunction and chunkLoadFunction to chunkLoadingGlobal
rename hotUpdateFunction to hotUpdateGlobal
2020-08-28 10:58:00 +02:00
Tobias Koppers d6e637f33c add "snapshot" configuration to allow to configure how snapshots are created
expose snapshot options for module, resolve, buildDependencies and resolveBuildDependencies
move managedPaths and immutablePaths from config.cache to config.snapshot
add timestamp + hash snapshotting mode
use timestamp + hash mode by default in production and for buildDependencies
2020-08-26 01:27:13 +02:00
Tobias Koppers db36afea4d
Merge pull request #11333 from chenxsan/feature/output-charset
add output.charset option
2020-08-19 15:01:06 +02:00
Tobias Koppers b929d4cdce calculate real content hash for assets after asset processing 2020-08-18 22:07:24 +02:00
chenxsan 509349f7d1 fix lint 2020-08-17 21:44:32 +08:00
chenxsan 2611eb8ccc update schemas 2020-08-17 20:34:23 +08:00
Ivan Kopeykin 4157166263 Merge branch 'master' into feature/asset-url
# Conflicts:
#	test/Defaults.unittest.js
2020-08-16 15:47:05 +03:00
Ivan Kopeykin f659974405 add output.baseURI option, add test case for it 2020-08-16 12:34:40 +03:00
Tobias Koppers d95fa3da6d need to check dependency when applying loaders for normal imports 2020-08-08 11:29:09 +02:00
Ivan Kopeykin ddc83b0d70 feat: url assets 2020-08-05 00:55:38 +03:00
Tobias Koppers 1273b9eb96
Merge pull request #11267 from webpack/experiments/import-async
enable experiments.importAsync by default
2020-08-04 16:00:00 +02:00
Tobias Koppers c715b1990f
Merge pull request #11209 from snitin315/fix/optimization-description
fix: optimization.emitOnErrors description
2020-08-04 09:06:08 +02:00
Tobias Koppers dfc8e35f2d enable experiments.importAsync by default
remove experiments.importAwait
2020-08-04 00:47:08 +02:00
Tobias Koppers d39f16cf46
Merge pull request #11171 from snitin315/cli-options
exclude --module-rules-options from schema for cli
2020-08-03 23:22:37 +02:00
Nitin Kumar ddaa68e198 fix: optimization.emitOnErrors description 2020-08-03 15:11:54 +05:30
Tobias Koppers d0ef2ce43f display assets in stats in a list instead of a table
group related assets below the parent asset
2020-08-02 08:07:32 +02:00
Tobias Koppers 4c3216efad add size optimization mode to `optimization.mangleExports` 2020-07-31 12:54:38 +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 b3466e996b add entry[x].runtime option to allow runtime chunk per entry 2020-07-27 22:40:40 +02:00
Nitin Kumar c32bc72f8a exlude module.rules[].options from schema for cli 2020-07-24 10:16:38 +05:30
Tobias Koppers 1179a3eaab
Merge pull request #11188 from webpack/feature/mjs
improve compatibly with node.js ESM
2020-07-20 12:18:21 +02:00
Tobias Koppers f65adade96 deprecate optimization.noEmitOnErrors in favor of optimization.emitOnErrors 2020-07-20 08:40:31 +02:00
Tobias Koppers 205bbb4c0d improve compatibly with node.js ESM
improve experiments.mjs to be more compatibly with node.js ESM
  - add support for `type: "module"` in package.json
  - add support for `*.cjs`
  - enable strict ESM for data uris with `text/javascript` or `application/javascript`
  - disallow not fully specified requests in imports `*.mjs` or `type: "module"`

add `descriptionData` rule condition to match package.json info
fix passing resolveOptions along context modules
2020-07-17 13:58:29 +02:00
Tobias Koppers 4b02d79b2c Cli updates 2020-07-15 14:32:28 +02:00
Tobias Koppers 0d857e3942 Improve cleverMerge to respect byDependency order correctly
Allow to use "..." in `option.resolve` too
Add "..." to schema when needed

Apply dependency specific mainFields, aliasFields and conditionNames only
for cjs and esm dependencies or when none is specified for backward-compat.
2020-07-15 14:13:31 +02:00
Tobias Koppers 6014ca7e86 splitChunks improvements
add new splitChunks.enforceSizeThreshold option
enforces splitting on certain size (ignoring maxRequests and minRemainingSize)

reduce default for splitChunks.minSize to 20k
set default for splitChunks.enforceSizeThreshold to 50k

fix bug where sorting didn't work for minSize: 0
2020-07-13 10:12:17 +02:00
Tobias Koppers 71ec6adf3b Improve description in config schema 2020-07-09 09:41:31 +02:00
Ivan Kopeykin 38779b85ee add roots option 2020-07-09 00:17:57 +03:00
Tobias Koppers e27eb830f7
Merge pull request #11105 from webpack/mf/semver
add full Semantic Versioning for Shared Modules
2020-07-06 23:18:00 +02:00
Tobias Koppers 1bb02df61e
Merge pull request #11095 from vankop/support-url-requests
Support url requests
2020-07-06 20:03:52 +02:00
Tobias Koppers 7442a211b9 add support for resource fragments 2020-07-03 17:03:15 +02:00
Tobias Koppers 3fcd5f9bc5 add full Semantic Versioning for Shared Modules
change storage format in the share scope
choose shared module deterministic from the same origin
remove array syntax from version and requiredVersion in schema
2020-07-02 16:09:39 +02:00
Sergey Melyukov 139da61b5f rename jsonScriptType to scriptType 2020-06-24 23:05:21 +03:00
Tobias Koppers ba9027ac1a
Merge pull request #10719 from goganchic/feature/data-uri
Implement Data URI imports
2020-06-24 11:08:44 +02:00
Tobias Koppers 0397701d85 improve types, moved byDependency logic into ResolverFactory 2020-06-17 22:17:14 +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
Tobias Koppers ad56d8abb1 improve handling of relative/absolute requests in the ProvideSharedPlugin 2020-06-15 16:20:34 +02:00
Tobias Koppers 1c42f71250 allow to provide and consume multiple versions of shared modules 2020-06-13 14:45:37 +02:00
Tobias Koppers 42e14d6a42 provide shared based on used modules and used version 2020-06-10 16:30:08 +02:00
Ivan Kopeykin d2a08e3cc8 rework how byDependency applied
remove dependencyType parameter for resolver factory
add dependencyType option in enhanced resolve options
2020-06-09 01:32:24 +03:00
Ivan Kopeykin 2f7510abd2 add restrictions option 2020-06-08 23:54:59 +03:00
goganchic 0ab91b7664 fix mimetype type description 2020-06-05 15:32:43 +03:00
goganchic 4b59a302a2 add mimetype rule 2020-06-05 15:15:11 +03:00
Tobias Koppers 3df380e2d7 add script external
change defaults of ModuleFederationPlugin to var library and script remoteType
allow using empty entry in config
2020-06-04 03:18:07 +02:00
Ivan Kopeykin 57bd6ed348 Merge branch 'master' into exports-field
# Conflicts:
#	lib/container/OverridablesPlugin.js
2020-06-01 15:14:47 +03:00
Ivan Kopeykin d4b1819749 add ability to set resolve options per dependency category
- byDependency option
- create resolver per dependency category
2020-05-28 02:30:29 +03:00
Ivan Kopeykin 52f3d60d44 fix typo 2020-05-27 22:47:37 +03:00
Tobias Koppers 4b61de7b14 strictVersion defaults to false for singleton modules 2020-05-27 15:16:44 +02:00
Tobias Koppers 6f5d229661 add singleton shared modules 2020-05-27 15:10:57 +02:00
Tobias Koppers bb30ea2216 automatically determine version of shared module from package.json 2020-05-27 11:53:59 +02:00
Tobias Koppers e78a76b2e0 remove all overrides and overridables related code 2020-05-26 17:26:28 +02:00
Tobias Koppers 32217e95fb add missing descriptions 2020-05-26 17:17:44 +02:00
Tobias Koppers edf03440ba add SharePlugin
let ModuleFederationPlugin use the SharePlugin
update container test cases to new behavior
2020-05-26 17:11:21 +02:00
Tobias Koppers 2fc44c2343 add share plugin 2020-05-26 00:46:09 +02:00
Tobias Koppers 1b3246361b add consume shared module plugin 2020-05-25 23:14:19 +02:00
Ivan Kopeykin bf3633ee1b add exportsFields and conditionNames options 2020-05-25 14:44:50 +03:00
Tobias Koppers 83cdba368f add provide shared module plugin 2020-05-25 10:50:37 +02:00
Tobias Koppers a468cbbd2e add provide shared module plugin 2020-05-23 16:08:51 +02: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 4f194f0748 advanced configs for container plugins
refactor options parsing to allow advanced config options
  automatic scoping has been removed and a scope method is offered instead
move shared schema definitions into a shared schema to allow to sync them
allow to pass multiple modules to a single exposed name
  they are all executed and the last one is exported
allow to pass multiple container locations to remotes
  they are tried in order, falling back to the next one when one fails
allow remotes to be promises as preparation of async externals
2020-05-14 15:50:35 +02:00
Tobias Koppers 15eefadcea
Merge pull request #10838 from webpack/dev-1
Merge Module Federation into webpack 5 beta
2020-05-05 23:57:00 +02:00
chenxsan 0a53c7ed43 fix typos 2020-05-02 19:10:55 +08:00
Tobias Koppers 5ad346ec98 validate options for container-related plugins
expose options types via declarations
hide private properties in plugins
move container-related schemas into container folder
2020-04-30 18:07:17 +02:00
Tobias Koppers 5887c20ab0 Merge tag 'v5.0.0-beta.15' into dev-1
5.0.0-beta.15
2020-04-22 07:37:49 +02:00
Tobias Koppers c7a962604f fix splitChunks typings 2020-04-21 09:25:58 +02:00
Tobias Koppers cbb6ee6809 test more test cases for typings and fix typing bug 2020-04-21 09:25:55 +02:00
Tobias Koppers 6178aea763 improve typings and test them in CI
lazy load all webpack exports
2020-04-21 09:25:43 +02:00
Tobias Koppers 3f9e6d5ec6 move tooling into separate repo, add type generation and test types 2020-04-21 09:25:38 +02:00
Tobias Koppers e982708a51 fixes for stricter linting 2020-04-14 14:51:08 +02:00
Tobias Koppers d5c31ab864 Merge branch 'master' into dev-1 2020-04-14 12:48:38 +02:00
Tobias Koppers c754951781
Merge pull request #10701 from strayiker/bugfix/10699
Fix DllReferencePlugin schema
2020-04-14 10:59:30 +02:00
Kirill Mesnyankin e28bf3ae13 Fix DllReferencePlugin schema 2020-04-12 01:28:49 +03:00
Nitin Kumar 2d13780f6d
fix: correct managedPaths description
Signed-off-by: Nitin Kumar <snitin315@gmail.com>
2020-04-10 08:13:59 +05:30
Tobias Koppers 505183833b process numbers and booleans before strings 2020-03-26 16:46:58 +01:00
Tobias Koppers 016fc28fd5 stricter linting
oneOf for references
anyOf for alternatives
2020-03-26 12:03:53 +01:00
Tobias Koppers 9eb1cd0ac5 test and fix reset flag
exclude some deprecated options
improve reference support in compile-to-definitions
stricter schema linting
2020-03-26 11:39:00 +01:00
Tobias Koppers 25f2b4aabf get rid of helpers in schema
handle array + single items by default in cli args
sort schema one/any/allOf array by type
2020-03-26 09:48:21 +01:00
Tobias Koppers 4f0502f297 remove overwrite cli flag 2020-03-25 23:48:51 +01:00
Tobias Koppers 43aed43222 add path handling, dedupe, fix schema issue 2020-03-25 23:38:42 +01:00
Tobias Koppers 2cc8a2074f improve array handling, tests 2020-03-25 23:29:35 +01:00
Tobias Koppers dcd7f3245d Improve arguments generation 2020-03-25 23:29:31 +01:00
Tobias Koppers 575d6aa4f0 Merge branch 'master' into dev-1 2020-03-20 09:58:13 +01:00
Tobias Koppers b178bfc55a Fix merge issues 2020-03-18 10:01:20 +01:00
Tobias Koppers 498bb0841b
Merge pull request #10548 from webpack/setup-cspell
chore: setup cspell
2020-03-18 09:51:54 +01:00
Ivan Kopeykin 5ba64ab46b fix(#10552) remove test/include/exclude from schema for rule set conditions 2020-03-15 21:21:52 +03:00
evilebottnawi dafa4cd69a chore: setup cspell 2020-03-12 19:51:26 +03:00
Tobias Koppers 3bc5a9e0b7 Merge branch 'master' into dev-1 2020-03-12 15:44:02 +01:00
Tobias Koppers df81e14447 little schema fixes 2020-03-10 18:19:49 +01:00
Tobias Koppers 87e6f58786 Ensure strict format of descriptions in schemas 2020-03-10 18:19:33 +01:00
Tobias Koppers 95347e17d5
Merge pull request #10445 from ScriptedAlchemy/container-reference-schema-validation
ContainerReferencePlugin options validation
2020-02-26 22:37:26 +01:00
Tobias Koppers d33c0d144e use new library system in ContainerPlugin 2020-02-26 21:52:58 +01:00
Tobias Koppers 28e16e8b2b fix linting 2020-02-26 21:14:49 +01:00
Tobias Koppers e56d3e3c29 Merge branch 'master' into dev-1 2020-02-26 19:29:29 +01:00
ScriptedAlchemy b3938822c2 adding overrides schema validation 2020-02-26 09:42:23 -08:00
Marais Rossouw 905f2475ff feat: Adds ContainerPlugin
Co-authored-by: Zack Jackson <zackary.l.jackson@gmail.com>
2020-02-26 17:47:15 +01:00
Tobias Koppers 88e6c5e2a7 add library option to entry description 2020-02-26 17:36:16 +01:00
Tobias Koppers 39e407e927 normalize entry option and reduce normalization in EntryOptionPlugin 2020-02-26 17:36:06 +01:00
Tobias Koppers f1dd328779 refactor library system 2020-02-26 17:35:52 +01:00
Tobias Koppers e5b51235d7 add externalsType option
fix a few edge cases in ExternalModule
2020-02-26 17:22:42 +01:00
Tobias Koppers bbb16e7af2 add output.uniqueName option
It defaults to library name or name from package.json in context

output.uniqueName will be used to generate unique globals for
* output.jsonpFunction
* output.chunkCallbackName
* etc.
2020-02-26 16:32:42 +01:00
Tobias Koppers 03431d1113 from serve property from options 2020-02-18 22:55:31 +01:00
Tobias Koppers 683e867450 Improve schema generation and add more descriptions 2020-02-17 19:12:58 +01:00
Tobias Koppers 6477ca56f8 Split options defaulting in normalization and defaults
Apply defaults after plugins are applied to allow plugins to feature their own defaults.
This allows to make preset plugins.
2020-02-17 19:12:54 +01:00
Sergey Melyukov c31d941899 dependOn feature
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
2020-02-11 09:11:00 +01:00
Tobias Koppers fe3c1d83ba cleanup 2020-02-10 13:04:28 +01:00
Sergey Melyukov d6c9953c94 feat: implement entry.filename option 2020-02-07 13:00:25 +03:00
Tobias Koppers 56036a55ad
Merge pull request #10315 from smelukov/pregress-percent-by
add percentBy options to ProgressPlugin
2020-02-05 10:09:38 +01:00
Tobias Koppers 152fa4ce97
Merge pull request #10334 from smelukov/entry-descriptor
Add entrypoint descriptor with `import` property
2020-02-05 09:34:46 +01:00