Minifying the Code

最小化處理的簡單做法可以輸入 webpack -p-p--optimize-minimize 的簡寫,也可以想成 -p 就是給線上環境用的。

當然也可以透過 plugin 去控制更多選項的操作。

Uglify 預設會輸出許多警告訊息,這些訊息可以讓你了解它是怎麼運作的,不過在這裡可以先忽略警告訊息。

跟之前一樣,可以先在 parts.js 定義我們要的 function,最後在指向到 webpack.config.js。

libs/parts.js

...

exports.minify = function() {
  return {
    plugins: [
      new webpack.optimize.UglifyJsPlugin({
        compress: {
          warnings: false
        }
      })
    ]
  };
}

webpack.config.js

...

// Detect how npm is run and branch based on that
switch(process.env.npm_lifecycle_event) {
  case 'build':
    config = merge(
      common,
      {
        devtool: 'source-map'
      },

      parts.minify(),

      parts.setupCSS(PATHS.app)
    );
    break;
  default:
    ...
}

module.exports = validate(config);
}

接著執行 npm run build,可以看到檔案大小已經被壓縮:

[webpack-validator] Config is valid.
Hash: aec016ce2e9d0dfa1577
Version: webpack 1.13.0
Time: 3342ms
     Asset       Size  Chunks             Chunk Names
    app.js      38 kB       0  [emitted]  app
app.js.map     325 kB       0  [emitted]  app
index.html  157 bytes          [emitted]
   [0] ./app/index.js 123 bytes {0} [built]
  [37] ./app/component.js 136 bytes {0} [built]
    + 36 hidden modules
Child html-webpack-plugin for "index.html":
        + 3 hidden modules

results matching ""

    No results matching ""