vue.config.js 1.64 KB
/* eslint-disable indent */
const FilemanagerWebpackPlugin = require('filemanager-webpack-plugin')
const path = require('path')
// 匹配路径方法
const resolve = dir => path.join(__dirname, dir)

const BASE_URL = process.env.NODE_ENV === 'production' ? '' : '/'

const plugins =
  process.env.NODE_ENV === 'production'
    ? [
        new FilemanagerWebpackPlugin({
          onEnd: [
            { delete: [resolve('dist.zip')] },
            {
              archive: [
                { source: resolve('dist'), destination: resolve('dist.zip') }
              ]
            }
          ]
        })
      ]
    : []
module.exports = {
  lintOnSave: undefined,
  assetsDir: 'static',
  // 打包时不生成map文件,减少打包体积,加快打包速度
  productionSourceMap: false,
  devServer: {
    https: true,
    inline: true,
    proxy: {
      '/chery': {
        target: process.env.VUE_APP_BASE_API
      }
      // '/': {
      //   bypass: devServerProxyBypass,
      //   secure: false,
      //   target: serverTarget,
      //   headers: {
      //     Host: new URL(serverTarget).host
      //   }
      // }
    }
  },
  configureWebpack: {},
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src'))
      .set('_c', resolve('src/components'))
    // set svg-sprite-loader
    config.module
      .rule('svg')
      .exclude.add(resolve('src/icons'))
      .end()
    config.module
      .rule('icons')
      .test(/\.svg$/)
      .include.add(resolve('src/icons'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]'
      })
      .end()
  }
}