2021-11-26 15:05:00 +00:00
|
|
|
const pkg = require('./package.json')
|
|
|
|
|
2022-01-21 08:50:23 +00:00
|
|
|
const { defineConfig } = require('@vue/cli-service')
|
2022-04-08 06:55:59 +00:00
|
|
|
const dynamicThemePlugin = require('./src/webpack/dynamicTheme.js')
|
2022-01-21 08:50:23 +00:00
|
|
|
|
2022-04-11 14:49:42 +00:00
|
|
|
const CompressionPlugin = require('compression-webpack-plugin')
|
|
|
|
const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i
|
|
|
|
|
2022-01-21 08:50:23 +00:00
|
|
|
module.exports = defineConfig({
|
2020-01-11 05:06:01 +00:00
|
|
|
publicPath: process.env.PUBLIC_PATH,
|
2019-03-20 12:22:52 +00:00
|
|
|
|
2021-11-26 15:05:00 +00:00
|
|
|
chainWebpack: config => {
|
|
|
|
config.plugin('html').tap(args => {
|
|
|
|
args[0].version = pkg.version
|
|
|
|
return args
|
|
|
|
})
|
2022-04-11 14:49:42 +00:00
|
|
|
if (process.env.NODE_ENV === 'production') {
|
|
|
|
config.plugin('compressionPlugin').use(
|
|
|
|
new CompressionPlugin({
|
|
|
|
filename: '[path][base].gz',
|
|
|
|
algorithm: 'gzip',
|
|
|
|
test: productionGzipExtensions,
|
|
|
|
threshold: 10240,
|
|
|
|
minRatio: 0.8,
|
|
|
|
deleteOriginalAssets: false
|
|
|
|
})
|
|
|
|
)
|
|
|
|
}
|
2021-11-26 15:05:00 +00:00
|
|
|
},
|
|
|
|
|
2022-04-08 06:55:59 +00:00
|
|
|
configureWebpack: {
|
|
|
|
plugins: [dynamicThemePlugin()]
|
|
|
|
},
|
|
|
|
|
2019-03-20 12:22:52 +00:00
|
|
|
css: {
|
|
|
|
loaderOptions: {
|
|
|
|
less: {
|
2021-09-15 13:44:00 +00:00
|
|
|
modifyVars: {
|
|
|
|
'border-radius-base': '2px'
|
|
|
|
},
|
2019-03-20 12:22:52 +00:00
|
|
|
javascriptEnabled: true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2021-03-06 10:38:10 +00:00
|
|
|
lintOnSave: false,
|
2019-04-18 03:23:43 +00:00
|
|
|
transpileDependencies: [],
|
|
|
|
productionSourceMap: false
|
2022-01-21 08:50:23 +00:00
|
|
|
})
|