/**
 * Created by Zhang Haijun on 2018/7/24.
 */
const path = require('path')
const webpack = require('webpack')
const CompressPlugin = require('compress-webpack-plugin')
function resolve(dir) {
  return path.join(__dirname, dir)
}
const httpType = 'https://'
const proxyUrl = '23.33.3.22:60006' // 代理地址设置

// const proxyUrl = '10.20.51.92:7001' // 代理地址设置
const publicPath = process.env.NODE_ENV === 'production' ? '/scr-web/' : '/'
module.exports = {
  publicPath,
  assetsDir: 'static',
  outputDir: 'scr-web',
  // 构建时不进行eslint校验
  lintOnSave: process.env.NODE_ENV !== 'production',
  // 生产环境禁止source map
  productionSourceMap: false,
  devServer: {
    port: 8083,
    overlay: {
      warnings: true,
      errors: true
    },
    proxy: {
      '/screen_server': {
        target: 'http://gn.api.aipow.cn:8080',
        changeOrigin: true,
        pathRewrite: { '^/screen_server': '/screen_server' }
      },
      '/prometheus': {
        target: 'http://gn.api.aipow.cn:8080',
        changeOrigin: true,
        pathRewrite: { '^/prometheus': '/prometheus' }
      }
    }
  },
  configureWebpack: config => {
    const plugins = [
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery'
      })
    ]
    if (process.env.NODE_ENV === 'production') {
      plugins.push(
        new CompressPlugin({
          test: /\.js$|\.html$|\.css$/,
          threshold: 10240,
          deleteOriginalAssets: false
        })
      )
    }
    return {
      plugins
    }
  },
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src'))
      .set('assets', resolve('src/assets'))
      .set('services', resolve('src/services'))
      .set('utils', resolve('src/utils'))
      .set('components', resolve('src/components'))
      .set('views', resolve('src/views'))
    config.module
      .rule('fonts')
      .use('url-loader')
      .loader('url-loader')
      .options({
        limit: 4096, // 小于4kb将会被打包成 base64
        fallback: {
          loader: 'file-loader',
          options: {
            name: 'fonts/[name].[hash:8].[ext]',
            publicPath
          }
        }
      })
      .end()
  }
}
