const path = require(`path`)
const application = require(`./src/config/application`)
const CompressionWebpackPlugin = require(`compression-webpack-plugin`)
function resolve (dir) {
return path.join(__dirname, dir)
}
module.exports = {
publicPath: `./`,
assetsDir: `assets`,
chainWebpack: (config) => {
config.module.rule(`eslint`).
use(`eslint-loader`).
loader(`eslint-loader`).
tap(options => {
options.fix = true
return options
})
config.resolve.alias.set(`@`, resolve(`src`)).
set(`@assets`, resolve(`src/assets`)).
set(`@components`, resolve(`src/components`)).
set(`@views`, resolve(`src/views`)).
set(`@static`, resolve(`src/static`))
config.plugins.delete(`prefetch`).delete(`preload`)
config.when(process.env.NODE_ENV !== `development`, config => {
config.plugin(`compression`).use(CompressionWebpackPlugin, [
{
algorithm: `gzip`,
test: /\.(js|css|html)$/,
threshold: 0,
minRatio: 0.8,
},
])
})
},
transpileDependencies: [],
configureWebpack: {},
css: {
loaderOptions: {
less: {
lessOptions: {
modifyVars: {
'primary-color': `#2E5DFC`,
'primary-color-secondary': `#2E5DFCd8`,
'primary-white': `rgba(255, 255, 255, 0.85)`,
'primary-white-secondary': `rgba(255, 255, 255, 0.65)`,
'primary-white-disabled': `rgba(255, 255, 255, 0.45)`,
'primary-drak': `rgba(0, 0, 0, 0.85)`,
'primary-drak-secondary': `rgba(0, 0, 0, 0.65)`,
'primary-drak-disabled': `rgba(0, 0, 0, 0.45)`,
'link-color': `#2E5DFC`,
'success-color': `#009966`,
'sign-color': `#913D10`,
'warning-color': `#faad14`,
'error-color': `#D82431`,
'heading-color': `rgba(0, 0, 0, 0.85)`,
'text-color': `rgba(0, 0, 0, 0.85)`,
'text-color-secondary': `rgba(0, 0, 0, .65)`,
'disabled-color': `rgba(0, 0, 0, .45)`,
'dividing-line-color': `#eeeeee`,
'border-color-base': `#a0a0a0`,
'border-color-base-secondary': `#cccccc`,
'border-base': `1px solid @border-color-base`,
'border-base-secondary': `1px solid @border-color-base-secondary`,
'border-radius-base': `10px`,
'border-radius-sm': `6px`,
'font-size-huge': `18px`,
'font-size-lg': `16px`,
'font-size-base': `14px`,
'font-size-sm': `12px`,
'slider-gutter-huge': `20px`,
'slider-gutter-lg': `16px`,
'slider-gutter': `12px`,
'slider-gutter-sm': `8px`,
'slider-gutter-xs': `4px`,
},
javascriptEnabled: true,
},
},
},
sourceMap: true,
},
devServer: {},
outputDir: undefined,
runtimeCompiler: true,
productionSourceMap: false,
parallel: undefined,
}