const { resolve } = require("path");

//html资源处理
const HtmlWebpackPlugin = require('html-webpack-plugin')
//设置node环境变量 postcss-loader会根据它读取package.js里的browserslist配置
process.env.NODE_ENV = 'development'

/**
 * 1、通过多入口 + optimization配置
 * 2、通过单入口 + optimization配置
 * 3、通过js代码，让某个文件被单独打包成一个chunk 示例在 ./src/js/index.js
 */
module.exports = {
    entry: {
        // 多入口
        index: './src/js/index.js',
        test: './src/js/test.js'
    },
    output: {
        // name取文件名
        filename: 'js/[name].[contenthash:10].js',
        path: resolve(__dirname, 'build')
    },
    plugins:[
        new HtmlWebpackPlugin({
            template: './src/index.html',
            minify:{
                collapseWhitespace:true,
                removeComments:true
            }
        })
    ],
    // 可以将node_modules 中代码单独打包一个chunk最终输出
    // 自动分析多入口chunk中，是否有公共文件，公共文件会单独打包。
    optimization:{
        splitChunks:{
            chunks:'all'
        }
    },
    mode:'production'
}