// 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']),
|
],
|
});
|