zhaoxiaoqiang
2021-07-28 9e6e98a8c6541354619f15e81009082db8d3ad14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//  webpack生产环境配置
process.env.NODE_ENV = 'production';
const webpack = require('webpack');
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
// 每次build之前删除dist文件夹
const CleanWebpackPlugin = require('clean-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
// css压缩插件
var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
// js 压缩插件
// const Uglify = require('uglifyjs-webpack-plugin');
 
module.exports = merge(common, {
    mode:"production",
    plugins: [
        // new Uglify(),
        // 把vue组件的css文件提取出来
        new MiniCssExtractPlugin({
            filename: './css/[name].[hash].css'
        }),
        // css压缩(cssnano、OptimizeCssAssetsPlugin) 需要install
        new OptimizeCssAssetsPlugin({
            assetNameRegExp: /\.css$/g,
            cssProcessor: require('cssnano'),
            cssProcessorPluginOptions: {
              preset: ['default', { discardComments: { removeAll: true } }],
            },
            canPrint: true
        }),
        // 指定环境
        new webpack.DefinePlugin({
            'process.env.NODE_ENV': JSON.stringify('production')
        }),
        // 清理/dist 文件夹
        new CleanWebpackPlugin(['dist']),
    ],
});