Sponsor webpack and get apparel from the official shop or get stickers here! All proceeds go to our open collective!

ag-grid is proud to partner with webpack

Optimization

Since version 4 webpack runs optimizations for you depending on the chosen mode, still all optimizations are available for manual configuration and overrides.

optimization.minimize

boolean

Tell webpack to minimize the bundle using the UglifyjsWebpackPlugin.

This is true by default in production mode.

webpack.config.js

module.exports = {
  //...
  optimization: {
    minimize: false
  }
}
Learn how mode works.

optimization.minimizer

UglifyjsWebpackPlugin | [UglifyjsWebpackPlugin]

Allows you to override the default minimizer by providing a different one or more customized UglifyjsWebpackPlugin instances.

webpack.config.js

module.exports = {
  //...
  optimization: {
    minimizer: [
      new webpack.optimize.UglifyJsPlugin({ /* your config */ })
    ]
  }
}

optimization.splitChunks

object

By default webpack v4+ provides new common chunks strategies out of the box for dynamically imported modules. See available options for configuring this behavior in the SplitChunksPlugin page.

optimization.runtimeChunk

object string boolean

Setting optimization.runtimeChunk to true adds an additonal chunk to each entrypoint containing only the runtime. It is possible to use preset mode of the plugin by providing a string value:

  • single: creates a runtime file to be shared for all generated chunks.
  • multiple: creates multiple runtime files for common chunks.

By setting optimization.runtimeChunk to object it is only possible to provide the name property which stands for the name or name factory for the runtime chunks.

webpack.config.js

module.exports = {
  //...
  optimization: {
    runtimeChunk: {
      name: entrypoint => `runtimechunk~${entrypoint.name}`
    }
  }
}

optimization.noEmitOnErrors

boolean

Use the optimization.noEmitOnErrors to skip the emitting phase whenever there are errors while compiling. This ensures that no erroring assets are emitted. The emitted flag in the stats is false for all assets.

webpack.config.js

module.exports = {
  //...
  optimization: {
    noEmitOnErrors: true
  }
}
If you are using webpack CLI, the webpack process will not exit with an error code while this plugin is enabled. If you want webpack to "fail" when using the CLI, please check out the bail option.

optimization.nodeEnv

string bool: false

Tells webpack to set process.env.NODE_ENV to a given string value. optimization.nodeEnv uses DefinePlugin unless set to false. optimization.nodeEnv defaults to mode if set, else falls back to "production".

Possible values:

  • any string: the value to set process.env.NODE_ENV to.
  • false: do not modify/set the value of process.env.NODE_ENV.

Further Reading


Contributors