const path = require('path')
const webpack = require('webpack')
const fs = require('fs');
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const { VueLoaderPlugin } = require('vue-loader')
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ESLintPlugin = require('eslint-webpack-plugin');
const WebpackMerge = require('webpack-merge')
const baseConfig = require('./webpack.base.js')
const { name } = require('./package');


module.exports = WebpackMerge.merge(baseConfig, {
  mode: 'development',
  //开发环境下默认启用cache，在内存中对已经构建的部分进行缓存
  //避免其他模块修改，但是该模块未修改时候，重新构建，能够更快的进行增量构建
  //属于空间换时间的做法
  cache: true,
  // 代码入口
  entry: {
    // 注册界面
    main: './src/main.js',
  },

  // output: {
  //   path: path.resolve(__dirname, '../dist'),
  //   publicPath: '/',
  //   filename: 'client-role-v3-[name].js',
  //   chunkFilename: 'client-role-v3-chunk-[name].js',
  // },
  output: {
    publicPath: '/',
    library: `${name}-[name]`,
    libraryTarget: 'umd', // 把微应用打包成 umd 库格式
    // chunkLoadingGlobal: `webpackJsonp_${name}`,
    chunkFilename: 'trace/client-trace-v3-chunk-[name].js',
  },

  devServer: {
    port: 8091,
    // static: {
    //   directory: path.join(__dirname, ''),
    // },
    proxy: {
      '/api': {
          target: 'http://localhost:83/',
          ws: false,
          changeOrigin: true
      },
      '/authApi': {
          target: 'http://localhost:83/',
          ws: false,
          changeOrigin: true
      },
    },

    headers: {
      'Access-Control-Allow-Origin': '*',
    },
  },

  devtool: 'source-map',


  plugins: (module.exports.plugins || []).concat([
    new HtmlWebpackPlugin({
      title: 'Prodog',
      template: './public/index.html',  // 源模板文件
      filename: './index.html', // 输出文件【注意：这里的根路径是module.exports.output.path】
      chunks: ['main']
    })
  ])
})
