2019-11-13 22:52:13 +08:00
const path = require ( 'path' ) ;
const TerserPlugin = require ( 'terser-webpack-plugin' ) ;
2020-01-14 19:02:08 +01:00
const { SourceMapDevToolPlugin } = require ( 'webpack' ) ;
2020-01-20 12:07:30 +02:00
const VueLoaderPlugin = require ( 'vue-loader/lib/plugin' ) ;
2019-11-13 22:52:13 +08:00
module . exports = {
mode : 'production' ,
entry : {
2020-01-14 19:02:08 +01:00
index : [ './web_src/js/index' ] ,
swagger : [ './web_src/js/swagger' ] ,
2020-01-21 18:32:33 +01:00
jquery : [ './web_src/js/jquery' ] ,
2019-11-13 22:52:13 +08:00
} ,
2020-01-14 19:02:08 +01:00
devtool : false ,
2019-11-13 22:52:13 +08:00
output : {
path : path . resolve ( _ _dirname , 'public/js' ) ,
2020-01-14 19:02:08 +01:00
filename : '[name].js' ,
2019-11-17 22:39:06 +01:00
chunkFilename : '[name].js' ,
2019-11-13 22:52:13 +08:00
} ,
optimization : {
minimize : true ,
2019-11-14 22:39:51 +01:00
minimizer : [ new TerserPlugin ( {
sourceMap : true ,
2019-11-17 22:39:06 +01:00
extractComments : false ,
terserOptions : {
output : {
comments : false ,
} ,
} ,
2019-11-14 22:39:51 +01:00
} ) ] ,
2019-11-13 22:52:13 +08:00
} ,
2019-11-14 22:39:51 +01:00
module : {
rules : [
2020-01-20 12:07:30 +02:00
{
test : /\.vue$/ ,
exclude : /node_modules/ ,
loader : 'vue-loader'
} ,
2019-11-14 22:39:51 +01:00
{
test : /\.js$/ ,
exclude : /node_modules/ ,
2020-01-22 07:35:29 +01:00
use : [
{
loader : 'babel-loader' ,
options : {
presets : [
[
'@babel/preset-env' ,
{
useBuiltIns : 'usage' ,
corejs : 3 ,
}
]
2020-01-20 12:07:30 +02:00
] ,
2020-01-22 07:35:29 +01:00
plugins : [
[
'@babel/plugin-transform-runtime' ,
{
regenerator : true ,
}
] ,
'@babel/plugin-proposal-object-rest-spread' ,
] ,
}
} ,
] ,
2019-11-17 22:39:06 +01:00
} ,
{
test : /\.css$/i ,
use : [ 'style-loader' , 'css-loader' ] ,
} ,
2019-11-14 22:39:51 +01:00
]
2020-01-14 19:02:08 +01:00
} ,
plugins : [
2020-01-20 12:07:30 +02:00
new VueLoaderPlugin ( ) ,
2020-01-14 19:02:08 +01:00
new SourceMapDevToolPlugin ( {
filename : '[name].js.map' ,
exclude : [
2020-01-22 07:35:29 +01:00
'gitgraph.js' ,
'jquery.js' ,
2020-01-14 19:02:08 +01:00
'swagger.js' ,
] ,
} ) ,
] ,
performance : {
2020-01-21 18:32:33 +01:00
maxEntrypointSize : 512000 ,
maxAssetSize : 512000 ,
2020-01-14 19:02:08 +01:00
assetFilter : ( filename ) => {
return ! filename . endsWith ( '.map' ) && filename !== 'swagger.js' ;
}
} ,
2020-01-22 07:35:29 +01:00
resolve : {
symlinks : false ,
}
2019-11-13 22:52:13 +08:00
} ;