Webpack Mode(模式)

2023-05-15 17:28 更新

提供 ?mode? 配置選項(xiàng),告知 webpack 使用相應(yīng)模式的內(nèi)置優(yōu)化。

?string = 'production': 'none' | 'development' | 'production'?

用法

只需在配置對象中提供 ?mode? 選項(xiàng):

module.exports = {
  mode: 'development',
};

或者從 CLI 參數(shù)中傳遞:

webpack --mode=development

支持以下字符串值:

選項(xiàng) 描述
development 會將 DefinePlugin 中 process.env.NODE_ENV 的值設(shè)置為 development. 為模塊和 chunk 啟用有效的名。
production 會將 DefinePlugin 中 process.env.NODE_ENV 的值設(shè)置為 production。為模塊和 chunk 啟用確定性的混淆名稱,FlagDependencyUsagePlugin,FlagIncludedChunksPlugin,ModuleConcatenationPlugin,NoEmitOnErrorsPlugin 和 TerserPlugin 。
none 不使用任何默認(rèn)優(yōu)化選項(xiàng)

如果沒有設(shè)置,webpack 會給 ?mode? 的默認(rèn)值設(shè)置為 ?production?。

Mode: development

// webpack.development.config.js
module.exports = {
  mode: 'development',
};

Mode: production

// webpack.production.config.js
module.exports = {
  mode: 'production',
};

Mode: none

// webpack.custom.config.js
module.exports = {
  mode: 'none',
};

如果要根據(jù) webpack.config.js 中的 mode 變量更改打包行為,則必須將配置導(dǎo)出為函數(shù),而不是導(dǎo)出對象:

var config = {
  entry: './app.js',
  //...
};

module.exports = (env, argv) => {
  if (argv.mode === 'development') {
    config.devtool = 'source-map';
  }

  if (argv.mode === 'production') {
    //...
  }

  return config;
};

Further Reading


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號