/*
 * @Author: your name
 * @Date: 2021-09-16 11:27:35
 * @LastEditTime: 2021-11-29 15:29:40
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \hyyfClient\vue.config.js
 */
const CompressionWebpackPlugin = require("compression-webpack-plugin");
const path = require('path')
const productionGzipExtensions = /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i;
const webpack = require('webpack')
module.exports = {
  publicPath: './', // 相对于 HTML 页面（目录相同）
  chainWebpack: config => {
    config.plugin('provide').use(webpack.ProvidePlugin, [{
      $: 'jquery',
      jquery: 'jquery',
      jQuery: 'jquery',
      'window.jQuery': 'jquery'
    }])
  },
  configureWebpack: config => {
    if(process.env.NODE_ENV === 'production') {
      config.plugins.push(
        new CompressionWebpackPlugin({
          /* [file]被替换为原始资产文件名。
             [path]替换为原始资产的路径。
             [dir]替换为原始资产的目录。
             [name]被替换为原始资产的文件名。
             [ext]替换为原始资产的扩展名。
             [query]被查询替换。*/
          filename: '[path].gz[query]',
          //压缩算法
          algorithm: 'gzip',
          //匹配文件
          test: productionGzipExtensions,
          //压缩超过此大小的文件,以字节为单位
          threshold: 10240,
          minRatio: 0.8,
          //删除原始文件只保留压缩后的文件
          //deleteOriginalAssets: false
        })
      )
    }
    config.resolve.alias = {
      '@': path.resolve(__dirname, 'src'),
      'components': '@/components',
      'views': '@/views',
      'assets': '@/assets',
      'utils': '@/utils'
    }
  },
  css: {
    loaderOptions: {
      less: {
        javascriptEnabled: true,
      }
    }
  },
  lintOnSave: false,
};
