webpack开发环境基本配置

本文介绍如何配置Webpack开发环境,包括安装必要的加载器如css-loader、less-loader等,使用html-webpack-plugin处理HTML文件,以及如何利用url-loader和file-loader来处理图片和其他资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境配置文件 webpack.config.js

开发环境配置文件webpack.config.js

1、下载css-loader、style-loader、less-loader、less

npm i css-loader style-loader less-loader less -D

2、打包html资源,下载html-webpack-plugin

npm install --save-dev html-webpack-plugin

3、打包图片资源、下载图片html-loader、url-loader file-loader

npm install --save-dev html-loader url-loader file-loader
const { resolve } =require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    entry: './src/js/index.js',
    output:{
       // js/build.js 表示输出到js目录下的build.js文件中
        filename: 'js/built.js',
        path: resolve(__dirname,'build/js')
    },
    module:{
        rules:[
            {
                test:/\.css$/,
                // 使用多个loader时,使用use
                use:[
                    // 创建style标签,将js中的样式资源插入到head标签中生效
                    'style-loader',
                    // 将css变成commonjs中的加载到js中,里面的内容是样式字符串
                    // css文件在开发环境中被整合到build.js中,然后通过js文件创建style标签插入到页面中
                    'css-loader'
                ]
            },
            {
                test:/\.less$/,
                use: [
                    'style-loader',
                    'css-loader',
                    // 将less文件编译成css文件,需要下载less-loader、less
                    'less-loader'
                ]
            },
            {
                // 
                test: /\.(jpg|png|gif)$/,
                loader: 'url-loader',
                options:{
                    // 图片大小小于8kb,就会被base64处理
                    // 优点,减少请求数量(减轻服务器压力);缺点,图片体积会变大,图片请求速度边忙
                    limit: 8 * 1024,
                    // 问题:因为url-loader默认使用的es6模块化解析,而html-loader引入图片是commonjs
                    // 解析时会出现问题:[object object]
                    // 解决:关闭url-loader的es6模块化,使用commonjs解析
                    esModule: false,
                    // 给图片进行重命名
                    // [hash:10]取图片的hash的前10位
                    // [ext] 取文件原来的扩展名
                    name: '[hash:10].[ext]',
                    // 输出文件的目录 build/imgs
                    outputPath: 'imgs'
                }
            },
            {
                test: /\.html$/,
                // 负责处理html中的img图片(负责引入img,从而能被url-loader处理)
                loader: 'html-loader'
            },
            {
                // 打包其他资源,使用file-loader
                exclude: /\.(css|js|html|less|jpg|png|gif)$/,
                loader: 'file-loader',
                options:{
                    name: '[hash: 10].[ext]',
                    // 其它资源输出到build/media目录下
                    outputPath: 'media'
                }
            },
        ]
    },
    plugins:[
     // html-webpack-plugin 默认会创建一个空的html,自动引打包入输出的(js/css)文件
      new HtmlWebpackPlugin({
          // 通过配置template ,复制'./src/index.html'文件,并自动引入打包输出所有的资源(js/css)
          template: './src/index.html'
      })
    ]
    mode: 'development',
    // 开发服务器devServer,用来自动化(自动化编译、自动打开浏览器、自动刷新浏览器)
    // 特点:只会在内存中打包,不会有任何输出
    // 启动devServer命令,npx webpack-dev-server (下载:npm i webpack-dev-server -D)
    devServer:{
        // 项目构建后路径
        contentBase: resolve(__dirname,'build'),
        // 启动gzip 压缩
        compress: true,
        // 端口号 
        port: 3000,
        // 自动打开浏览器
        open:true
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值