webpack can compile for multiple environments or targets. To understand what a target is in detail, read through the targets concept page.
target string | function(compiler)
Instructs webpack to target a specific environment.
string The following string values are supported via WebpackOptionsApply:
| Option | Description |
|---|---|
async-node |
Compile for usage in a Node.js-like environment (uses fs and vm to load chunks asynchronously) |
atom |
Alias for electron-main |
electron |
Alias for electron-main |
electron-main |
Compile for Electron for main process. |
electron-renderer |
Compile for Electron for renderer process, providing a target using JsonpTemplatePlugin, FunctionModulePlugin for browser environments and NodeTargetPlugin and ExternalsPlugin for CommonJS and Electron built-in modules. |
node |
Compile for usage in a Node.js-like environment (uses Node.js require to load chunks) |
node-webkit |
Compile for usage in WebKit and uses JSONP for chunk loading. Allows importing of built-in Node.js modules and nw.gui (experimental) |
web |
Compile for usage in a browser-like environment (default) |
webworker |
Compile as WebWorker |
For example, when the target is set to "electron", webpack includes multiple electron specific variables. For more information on which templates and externals are used, you can refer to webpack's source code.
function If a function is passed, then it will be called with the compiler as a parameter. Set it to a function if none of the predefined targets from the list above meet your needs.
For example, if you don't want any of the plugins they applied:
const options = {
target: () => undefined
};
Or you can apply specific plugins you want:
const webpack = require('webpack');
const options = {
target: (compiler) => {
compiler.apply(
new webpack.JsonpTemplatePlugin(options.output),
new webpack.LoaderTargetPlugin('web')
);
}
};
© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://webpack.js.org/configuration/target