const {resolve} = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')

/**
 * 
 */
module.exports = {
    entry: './src/index.js',
    output: {
        filename:'[name].js',
        path:resolve(__dirname,'build')
    },
    module:{
        rules:[
            {
                test:/\.css$/,
                use:['style-loader','css-loader']
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin()
    ],
    mode: 'development',
    /**
     * 解析模块规则
     */
    resolve:{
        //配置解析路径别名 缺点:编辑器无提示
        alias:{
            $css: resolve(__dirname,'src/css')
        },
        //配置省略文件路径的后缀名
        extensions:[
            '.js','.json','.css'
        ],
        //告诉webpack解析模块位置
        modules:[
            resolve(__dirname,'../node_modules'),'node_modules'
        ]
    },
    devServer:{
        //运行代码目录
        contentBase: resolve(__dirname,'build'),
        //监视build目录下文件,一旦变化就会reload
        watchContentBase:true,
        //忽略监视
        watchOptions:{
            ignored: /node_modules/
        },
        //启动gzip压缩
        conpress: true,
        //端口
        port:3000,
        host:'localhost',
        //自动打开浏览器
        open:true,
        //开启HMR功能
        hot:true,
        //不显示启动服务器日志信息
        clientLogLevel:'none',
        // 除了一些基本启动信息,其他内容不显示
        quiet:true,
        // 出错时,不全屏提示
        overlay: false,
        // 服务器代理 -- 跨域问题
        proxy:{
            '/api':{
                target:'http://localhost:3000',
                //重写
                pathRewrite:{
                    '^/api':''
                }
            }
        }
    }
}