W3cubDocs

/webpack

Target

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