Webpack5学习

安装webpack

npm i webpack webpack-cli -g

devServer的使用

nom i eslint-loader eslint-config-airbnb-base eslint-plugin-import -D

webpack.config.js的配置

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

/**
* 引入的插件
**/
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin');

module.exports = {
    
    /**
     * 1.entry 指示webpack从哪个文件开始打包
     */
     
    //单入口,使用字符串,形成一个chunk
    entry:['./src/index.js', './src/index.html'],

    //多入口,Array格式,形成一个chunk
   	entry:["./src/index.js", "./src/main.js"],

    //多入口,Object格式,形成多个chunk
    entry:{
    	  one:'./src/index.js',
          two:'./src/main.js'
    }
    //特殊用法
    entry:{
      onea:['./src/main.js', './src/index.js'],
      twob:['./src/index.js']
    }

    /**
     * 2.output 指定输出文件路径及名称
     */
    output:{
    	//单入口默认
        filename:'build.js',
        //多入口,Object格式
        filename:"[name].js",
        path:resolve(__dirname, 'build')
    },

    /**
     * 3.loader 打包CSS资源
     *      1)css-loader的作用是处理CSS中的@import和url
     *      2)style-loader的作用是把样式插入到DOM中
     */

    module:{
        rules:[
        
            /*顺序从右到左加载,顺序不可变*/
            {test:/\.css$/, use:[MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader']},
            {test:/\.less$/, use:[MiniCssExtractPlugin.loader, 'css-loader', 'less-loader', 'postcss-loader']},
            {test:/\.scss$/, use:[MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader', 'postcss-loader']},
        	
        	/**
            * 打包其他资源
            **/    
            {
                test:/\.(png|jpg|jpeg|gif)$/,
                loader:'url-loader',
                options:{
                    publicPath: './images/',
                    outputPath:'images/',
                    limit: 1024 * 8,
                    name:'[name][hash:10].[ext]'
                }
            },
            
    		/**
            * 打包HTML引用的其他资源
            **/
            {
                test:/\.html$/,
                loader:'html-loader'
            },
            
            /**
            * 去除无用的JS代码(非第三方)
            **/
            {
                test:/\.js$/,
                exclude:/node_modules/,
                loader:'eslint-loader',
                options: {
                    fix:true
                }
            }
        ]
    },


    /**
     * 4.plugins对HTML文件进行处理 1)下载 2)引入 3)使用
     *      安装命令:npm i html-webpack-plugin -g
     *      引入插件:const HtmlWebpackPlugin = require('html-webpack-plugin')
     * 	其他插件方法一致
     */
    plugins:[
        //1.默认创建一个空的, 目的就是自动引入包的资源
        //new HtmlWebpackPlugin()

        //2.指定模板
        new HtmlWebpackPlugin(
            {
                template:"./src/index.html",
                filename:"index.html",
                //压缩html文件
                minify:{
                   //移除(html)空格
                    collapseWhitespace:true,
                    //移除注释
                    removeComments:true
                }
            }
        ),

        new MiniCssExtractPlugin(
        
        ),

        new OptimizeCssAssetsWebpackPlugin(
        )
    ]

    
    /**
     * 5.生产模式production 开发模式development
     */
    mode:'development'
	
	/** 自动刷新 **/
	target: 'web'
	
	/** Server配置 cmd优先级高于配置文件**/
    devServer:{
        port: 3000,
        compress: true,
        open: true,
        hot:true
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值