mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 20:22:12 +08:00
80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
const path = require('path');
|
|
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
|
const CountPlugin = require('./CountComponentWebpackPlugin');
|
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
const TerserJSPlugin = require('terser-webpack-plugin');
|
|
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
|
|
|
|
const outputPath = path.resolve(process.cwd(), `../../../km-rest/src/main/resources/templates/layout`);
|
|
|
|
module.exports = {
|
|
mode: 'production',
|
|
plugins: [
|
|
new CleanWebpackPlugin(),
|
|
new CountPlugin({
|
|
pathname: 'knowdesign',
|
|
startCount: true,
|
|
isExportExcel: false,
|
|
}),
|
|
new MiniCssExtractPlugin({
|
|
filename: '[name]-[chunkhash].css',
|
|
}),
|
|
new CopyWebpackPlugin([
|
|
{
|
|
from: path.resolve(process.cwd(), 'static'),
|
|
to: path.resolve(outputPath, '../static'),
|
|
},
|
|
{
|
|
from: path.resolve(process.cwd(), 'favicon.ico'),
|
|
to: path.resolve(outputPath, '../favicon.ico'),
|
|
},
|
|
]),
|
|
],
|
|
externals: [
|
|
/^react$/,
|
|
/^react\/lib.*/,
|
|
/^react-dom$/,
|
|
/.*react-dom.*/,
|
|
/^single-spa$/,
|
|
/^single-spa-react$/,
|
|
/^moment$/,
|
|
/^antd$/,
|
|
/^lodash$/,
|
|
/^echarts$/,
|
|
/^react-router$/,
|
|
/^react-router-dom$/,
|
|
],
|
|
output: {
|
|
path: outputPath,
|
|
publicPath: process.env.PUBLIC_PATH + '/layout/',
|
|
filename: '[name]-[chunkhash].js',
|
|
chunkFilename: '[name]-[chunkhash].js',
|
|
library: 'layout',
|
|
libraryTarget: 'amd',
|
|
},
|
|
optimization: {
|
|
splitChunks: {
|
|
cacheGroups: {
|
|
vendor: {
|
|
test: /[\\/]node_modules[\\/]/,
|
|
chunks: 'all',
|
|
name: 'vendor',
|
|
priority: 10,
|
|
enforce: true,
|
|
minChunks: 1,
|
|
maxSize: 3000000,
|
|
},
|
|
},
|
|
},
|
|
minimizer: [
|
|
new TerserJSPlugin({
|
|
cache: true,
|
|
sourceMap: true,
|
|
}),
|
|
new OptimizeCSSAssetsPlugin({}),
|
|
],
|
|
},
|
|
devtool: 'none',
|
|
};
|