experiments
boolean: false
experiments
option was introduced in webpack 5 in order to empower users with an ability of activating and trying out experimental features.
Because experimental features have relaxed semantic versioning and might contain breaking changes, make sure to fix webpack's version to minor e.g.
webpack: ~5.4.3
instead ofwebpack: ^5.4.3
or use a lockfile when usingexperiments
.
Available options:
mjs
: Support .mjs
files as a way to define EcmaScript modulessyncWebAssembly
: Support the old WebAssembly like in webpack 4asyncWebAssembly
: Support the new WebAssembly according to the updated specification, it makes a WebAssembly module an async moduletopLevelAwait
: Support the Top Level Await Stage 3 proposal, it makes the module an async module when await
is used on the top-levelimportAsync
: import async modules with import
importAwait
: import async modules with import await
asset
: a type of module that allows to use asset files (fonts, images, etc) without configuring loaders to handle their importing, similar to file-loader
| url-loader
| raw-loader
outputModule
: enables the use of output.module
configuration option and sets it to true
. Enables the use of output.libraryTarget
as 'module'
and sets it to 'module'
.webpack.config.js
module.exports = {
//...
experiments: {
mjs: true,
outputModule: true,
syncWebAssembly: true,
topLevelAwait: true,
asset: true,
asyncWebAssembly: true,
importAsync: true,
importAwait: true,
},
};