Files
2023-07-17 15:01:31 +08:00

99 lines
2.6 KiB
JavaScript

const webpack = require('webpack')
const { interfaceUrl } = require('./src/sysConfig')
const path = require('path')
function resolve(dir) {
return path.join(__dirname, dir)
}
const Timestamp = new Date().getTime()
module.exports = {
productionSourceMap: false,
publicPath: './',
outputDir: 'dist',
assetsDir: 'static',
lintOnSave: false,
// webpack插件
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'windows.jQuery': 'jquery'
})
]
},
transpileDependencies: ['node_modules/webpack-dev-server/client', 'element-ui', '@antv/g6'],
// webpack配置项
chainWebpack: (config) => {
config.entry.app = ['@babel/polyfill', './src/main.js']
config.module.rule('compile')
.test(/\.js$/)
.include
.add(resolve('src'))
.add(resolve('test'))
.add(resolve('static'))
.add(resolve('node_modules/webpack-dev-server/client'))
.add(resolve('node_modules'))
.end()
.use('babel')
.loader('babel-loader')
.options({
presets: [
['@babel/preset-env', {
modules: false
}]
]
})
config.resolve.alias
.set('@', resolve('./src'))
.set('module', resolve('./src/module'))
.set('assets', resolve('./src/assets'))
.set('styles', resolve('./src/assets/styles'))
.set('api', resolve('./src/api'))
.set('zTree', resolve('./src/assets/zTree'))
.set('process', resolve('./src/pages/processCenter/pages'))
if (process.env.NODE_ENV === 'production') {
// 给js和css配置版本号
config.output.filename('js/[name].' + Timestamp + '.js?v=' + Timestamp).end();
config.output.chunkFilename('js/[name].' + Timestamp + '.js?v=' + Timestamp).end();
config.plugin('extract-css').tap(args => [{
filename: `css/[name].${Timestamp}.css?v=` + Timestamp,
chunkFilename: `css/[name].${Timestamp}.css?v=` + Timestamp
}])
config.optimization
.minimizer('terser')
.tap(args => {
const {
terserOptions: {
compress
}
} = args[0]
compress.drop_console = true
compress.drop_debugger = true
return args
})
}
},
devServer: {
port: 9090,
disableHostCheck: true,
proxy: {
'/api': {
target: interfaceUrl,
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
},
'/onlyOffice': {
target: 'http://127.0.0.1',
changeOrigin: true,
pathRewrite: {
'^/onlyOffice': '/api'
}
}
}
}
}