webpack配置html热更新问题

1.为什么webpack不会对html进行热更新?
因为webpack需要监听文件的变化才能进行相应的更新。而监听文件是从webpack配置的入口出发,从而对各个依赖进行更新。而入口的js文件一般不会引入html文件作为依赖,所以不会对html文件进行监听,也就不会对html文件进行热更新。
2.解决方法
由上可知,要使html热更新有以下两种方法:
1)将html文件放到入口文件数组中,如下:

const { resolve } = require("path")
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
    mode: 'development',
    //将html加入到入口中是为了html可以热更新
    /*注意:两者之间的位置不能交换,因为插件webpack-dev-server的作用是
    将所有webpack生成的bundles引入html中,即通过<script>
    标签引入生成的built.js所以必须先生成built.js,又webpack
    执行的时候是从后往前执行,所以.js需要放在后面*/
    entry: ['./src/index.html','./src/index.js'],
    output: {
        filename: 'built.js',
        path: resolve(__dirname, 'dist')
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html'
        })
    ],
    
    devServer: {
        host: 'localhost',
        port: '3000',
        static: {
            directory: resolve(__dirname, 'dist')
        },
        open: true,
        compress: true
    }
}

2).再’./src/index.html’引入html文件作为依赖

//两个文件在同一目录下
import './index.html'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值