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').end(); config.output.chunkFilename('js/[name].' + Timestamp + '.js').end(); config.plugin('extract-css').tap(args => [{ filename: `css/[name].${Timestamp}.css`, chunkFilename: `css/[name].${Timestamp}.css` }]) config.optimization .minimizer('terser') .tap(args => { const { terserOptions: { compress } } = args[0] compress.drop_console = true compress.drop_debugger = true return args }) } }, devServer: { port: 9999, proxy: { '/api': { target: interfaceUrl, changeOrigin: true, pathRewrite: { '^/api': '' } }, '/onlyOffice': { target: 'http://10.96.10.171', changeOrigin: true, pathRewrite: { '^/onlyOffice': '/api' } } } } }