生产环境配置

独立的配置文件

development 和 production 环境应使用独立的配置文件,但是两个配置文件中存在着相同的部分。因此可以借助 webpack-merge 工具,来引用一个 common 的配置,以此避免编写重复的配置项。

yarn add -D webpack-merge

webpack.common.js

const HtmlWebpackPlugin = require('html-webpack-plugin')
const path = require('path')

module.exports = {
  entry: {
    app: './src/index.js'
  },
  output: {
      filename: '[name].[hash:10].js',
      path: path.resolve(__dirname, 'dist'),
      clean: true
  },
  plugins: [
    new HtmlWebpackPlugin({
      title: 'Webpack'
    })
  ]
}

webpack.dev.js

const { merge } = require('webpack-merge')
const common = require('./webpack.common')

module.exports = merge(common, {
  mode: 'development',
  devtool: 'eval-source-map',
  devServer: {
    static: './dist'
  }
})

webpack.prod.js

const { merge } = require('webpack-merge')
const common = require('./webpack.common')

module.exports = merge(common, {
  mode: 'production'
})

package.json 添加 scripts

"scripts": {
  "build": "webpack --config webpack.prod.js",
  "start": "webpack serve --open --config webpack.dev.js"
 },

Last updated