webpack 生产环境配置(无注释)

const { resolve } = require(path)
const MiniCssExtractPlugin  =require(mini-css-extract-plugin)
const HtmlWebpackPlugin = require(html-webpack-plugin)
const OptimizeCssAssetsWebpackPlugin = require(optimize-css-assets-webpack-plugin)

process.env.NODE_ENV = production;

const commenCssLoader=[
    MiniCssExtractPlugin.loader,
    css-loader,
    {
        loader:postcss-loader,
        options: {
            ident: postcss,//默认配置
            plugins: () => [
                require(postcss-preset-env)()
            ]
        }
    },
]

module.exports ={
    entry:./src/js/index.js,
    output:{
        filename:js/built.js,
        path:resolve(__dirname,build)
    },
    module:{
        rules:[
            {
                test:/\.css$/,
                use:[...commenCssLoader]
            },
            {
                test:/\.less$/,
                use:[...commenCssLoader,less-loader]
            },
            {
                test:/\.js$/,
                exclude:/node_modules/,
                use:[
                    {
                        loader:babel-loader,
                        options:{
                            presets:[
                                [
                                    @babel/preset-env,
                                    {
                                        useBuiltIns:usage,
                                        corejs:{version:3},
                                        targets:{
                                            chrome:70,
                                            firefox:62,
                                            ie:9,
                                            safari:10,
                                            edge:17,
                                        }
                                    }
                                ]
                            ]
                        }
                    },
                    {
                        // //优先执行
                        // enforce:‘pre‘,
                        loader:eslint-loader,
                        options:{
                            fix:true
                        }
                    },
                ]
            },
            {
                test:/\.(jpg|png|gif)$/,
                loader:url-loader,
                options:{
                    limit:8*1024,
                    name:[hash:10].[ext],
                    outputPath:imgs,
                    //esModule:false
                }
            },
            {
                test:/\.html$/,
                loader:html-loader
            },
            {
                exclude:/\.(css|html|js|jpg|png|gif|less|sass)$/,
                loader:file-loader,
                options:{
                    name:[hash:10].[ext],
                outputPath:media//配置输出文件夹
                }
            }
        ]
    },
    plugins:[
        new HtmlWebpackPlugin({
            template:./src/index.html,
            minify: {
                collapseWhitespace:true,
                removeComments:true,
            }
        }),
        new MiniCssExtractPlugin({
            filename:css/built.css
        }),
        new OptimizeCssAssetsWebpackPlugin()
    ],
    mode:production,
    devServer:{
        contentBase:resolve(__dirname,build.js),
        compress:true,
        port:3000,
        open:true,
    }
}

 

webpack 生产环境配置(无注释)

上一篇:什么!你想要封装好的ajax


下一篇:HTTP和HTTPS有什么不同