• web4.0基本配置


    const path = require('path');//引入路径包
    const HWP = require('html-webpack-plugin');//引入自动产出html包
    const CWP = require('clean-webpack-plugin');//引入清除文件包
    const webpack = require('webpack');//引入webpack,做热更新用
    //const etwp = require('extract-text-webpack-plugin');
    const mcep = require('mini-css-extract-plugin');//引入分离css包
    const copywp = require('copy-webpack-plugin');//引入拷贝插件
    
    let obj = {
        /*
        webpack4.0需要配置依赖:
            开发依赖->mode:'development'
            生产依赖->mode:'production'
        */
        mode:'development',//配置开发依赖
        //入口文件
        entry:{
            './index.html'//目的为了解析某些指定文件,最终编译成能在浏览器运行的文件
        },
        //出口文件(取个名字放在build文件夹下面)
        output:{
            path:path.resolve(__dirname,'build'),//指定打包后的文件夹
            filename:'[name].[hash:6].js'//给指定的文件名字加上6位哈希
        },
        //利用loader模块转换器分离css
        module:{
            rules:[
               {
                     /*在根目录下找.css结尾的文件,把他们打包出来 */
                    test:/.css$/,//匹配所有以.css结尾的
                    use:[
                        //使用css分离就用mini-css-extract-plugin
                        {
                            loader.mcep
                        },
                        'css-loader'//使用css-loader
                    ]
                },
                //处理css中图片
                {
                    test:/(jpg|png|gif|svg|ttf|eot|woff|bmp)$/,
                    use:[
                        {
                            loader:'url-loader',
                            options:{
                                limit:4096,//图片大小
                                outputPath:'../images',//指定打包后的图片位置
                                publicPath:'/images'//原来的图片位置
                            }
                        }
                    ]
                }
                
            ]
        }
        //引入扩展插件
        plugins:[
            //清除文件插件  
            new CWP({
                ['build']//清除打包后多余的js(必须放在html文件上面)
            }),
             //分离css插件  
            new mcep({
                filename:'1.css'
            }),
             //自动产出html插件  
            new HWP({
                template:'./index.html'//模板文件,
                
                //对文件进行压缩
                minify:{
                    removeAttributeQuotes:true,//去掉属性双引号
                    collapseWhitespace:true//将文件压缩成一行
                },
                /*
                    设置文件的title
                    用模板引擎配合使用,<%= htmlWebpackPlugin.options.title>
                */
                title:'欢迎来到webpack4.0',
                hash:true,//给产出的文件加上hash,避免缓存
                //提取代码中的公共模块,然后将其打包到独立的文件中
                chunks:['index','index1']
                
            }),
            //热更新插件
            new webpack.HotModuleReplacementPlugin()//热更新模块
        ],
        //配置开发服务器
        devServer:{
            //配置开发服务运行时文件根目录(该配置可以省略)
            contentBase:path.resolve(__dirname,'build'),
            host:'localhost', //服务器监听的主机地址
            compress:true, //服务器是否启动压缩
            port:80, //服务器监听的端口
            open:true, //自动打开浏览器 可不写
            hot:true//热更新,局部刷新
        }
        
    }
    module.exports = obj;//导出obj
    
    *** extract-text-webpack-plugin默认安装的是3.0.2不支持webpack4.0
        所以使用mini-css-extract-plugin 支持webpack4.0
  • 相关阅读:
    1613. 最高频率的IP
    JavaMap常用操作
    centos虚拟机 与主机同步时间
    Kubernetes prometheus+grafana k8s 监控
    k8s集群搭建 2019
    linux运维/自动化开发__目录
    mysql DBA 指南
    mysql 监控
    微信公众号实现zaabix报警2017脚本(升级企业微信后)
    分布式监控开发 05 历史数据存储
  • 原文地址:https://www.cnblogs.com/theblogs/p/10198467.html
Copyright © 2020-2023  润新知