99 lines
2.6 KiB
JavaScript
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'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|