# Webpack 基础配置

# 配置对象

webpack 需要传入一个配置对象,那么我们就可以朴素的传入一个对象

var path = require("path");

module.exports = {
  mode: "development",
  entry: "./foo.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "foo.bundle.js"
  }
};

除了导出单个配置对象,还有一些方式满足其他需求
比如导出为一个函数

module.exports = function (env, argv) {
  return {
    mode: env.production ? "production" : "development",
    devtool: env.production ? "source-maps" : "eval",
    plugins: [
      new webpack.optimize.UglifyJsPlugin({
        compress: argv["optimize-minimize"] // 只有传入 -p 或 --optimize-minimize
      })
    ]
  };
};

或者导出一个 Promise

module.exports = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve({
        entry: "./app.js"
        /* ... */
      });
    }, 5000);
  });
};