mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 11:52:08 +08:00
60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
const path = require('path');
|
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
|
const TerserJSPlugin = require('terser-webpack-plugin');
|
|
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
|
|
const pkgJson = require('../package');
|
|
|
|
module.exports = {
|
|
mode: 'production',
|
|
externals: [
|
|
/^react$/,
|
|
/^react\/lib.*/,
|
|
/^react-dom$/,
|
|
/.*react-dom.*/,
|
|
/^single-spa$/,
|
|
/^single-spa-react$/,
|
|
/^moment$/,
|
|
/^lodash$/,
|
|
/^react-router$/,
|
|
/^react-router-dom$/,
|
|
],
|
|
plugins: [
|
|
new CleanWebpackPlugin(),
|
|
new MiniCssExtractPlugin({
|
|
filename: '[name]-[chunkhash].css',
|
|
}),
|
|
],
|
|
output: {
|
|
path: path.resolve(process.cwd(), `../../../km-rest/src/main/resources/templates/${pkgJson.ident}`),
|
|
publicPath: `${process.env.PUBLIC_PATH}/${pkgJson.ident}/`,
|
|
library: pkgJson.ident,
|
|
libraryTarget: 'amd',
|
|
filename: '[name]-[chunkhash].js',
|
|
chunkFilename: '[name]-[chunkhash].js',
|
|
},
|
|
optimization: {
|
|
splitChunks: {
|
|
cacheGroups: {
|
|
vendor: {
|
|
test: /[\\/]node_modules[\\/]/,
|
|
chunks: 'all',
|
|
name: 'vendor',
|
|
priority: 10,
|
|
enforce: true,
|
|
minChunks: 1,
|
|
maxSize: 3500000,
|
|
},
|
|
},
|
|
},
|
|
minimizer: [
|
|
new TerserJSPlugin({
|
|
cache: true,
|
|
sourceMap: true,
|
|
}),
|
|
new OptimizeCSSAssetsPlugin({}),
|
|
],
|
|
},
|
|
devtool: 'none',
|
|
};
|