const path = require('path')
var webpack = require('webpack')
const defaultSettings = require('./src/settings.js')
const name = defaultSettings.title || 'SASS' //标题
function resolve(dir) {
  return path.join(__dirname, dir)
}
module.exports = {
  //路径前缀
  publicPath: '/',
  lintOnSave: true,
  productionSourceMap: false,
  chainWebpack: (config) => {
    config.plugin('provide').use(webpack.ProvidePlugin, [
      {
        'window.Quill': 'quill/dist/quill.js',
        Quill: 'quill/dist/quill.js',
      },
    ])
    //忽略的打包文件
    config.externals({
      vue: 'Vue',
      'vue-router': 'VueRouter',
      vuex: 'Vuex',
      axios: 'axios',
    })
    const entry = config.entry('app')
    entry.add('babel-polyfill').end()
    entry.add('classlist-polyfill').end()
    entry.add('@/mock').end()
    config.resolve.alias
      .set('@', resolve('packages'))
      .set('@utils', resolve('packages/utils'))
      .set('@mixins', resolve('packages/mixins'))
      .set('@', resolve('src'))
    // set svg-sprite-loader
    config.module.rules.delete('svg') // 重点:删除默认配置中处理svg
    config.module
      .rule('svg-sprite-loader')
      .test(/\.svg$/)
      .include.add(resolve('src/icons')) // 处理svg目录
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]',
      })
  },
  css: {
    extract: {
      ignoreOrder: true,
    },
  },
  //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
  devServer: {
    port: 1666,
    proxy: {
      [process.env.VUE_APP_BASE_API]: {
        //本地服务接口地址
        // target: 'http://www.printmat.cn:8866',
        // target: 'http://116.205.162.119:8866',
        target: 'http://192.168.1.164:8866',
        changeOrigin: true,
        pathRewrite: {
          [`^${process.env.VUE_APP_BASE_API}`]: '/',
        },
      },
    },
  },
  configureWebpack: {
    name: name,
    resolve: {
      alias: {
        '@': resolve('src'),
      },
    },
    // 解决xlxs-style报错问题
    externals: {
      './cptable': 'var cptable',
    },
    // devtool: 'source-map', // 配置本地调试
  },
}