Webpack第五天

Posted coding个人笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Webpack第五天相关的知识,希望对你有一定的参考价值。

现在已经可以热更新css和js,打包也能打包了,现在要做html的热更新。很惭愧,找了很多资料,总说纷纭,在使用了raw-loader之后,在入口文件引入HTML,是可以刷新HTML,这边要注意,是刷新,不是热更新。

 

但是遇到了一个问题,在使用了热更新,能监听到HTML的修改,但是HTML没有插入成功。所以在两者之间比较之后,认为一般使用webpack的会使用框架,而框架几乎都是通过模块或者模板等去插入到HTML的某个根节点,所以保留热更新。

 

zed之前的写的webpack总结里面,他找到了一个保留热更新,还能刷新页面的方法,注意,是刷新页面。

devServer里面添加参数:

before(app, server) {
    devServer = server;
}

 

plugin里面添加reloadHtml,要特别注意,必须HtmlWebpackPlugin后面加这个。

 

module.exports外面添加方法:

function reloadHtml() {
    this.plugin('compilation',
        thing => thing.plugin('html-webpack-plugin-after-emit', trigger));
    const cache = {};
    function trigger(data, callback) {
        const orig = cache[data.outputName];
        const html = data.html.source();
        // plugin seems to emit on any unrelated change?
        if (orig && orig !== html)
            devServer.sockWrite(devServer.sockets, 'content-changed');
        cache[data.outputName] = html;
        callback();
    }
}

 

说真的,我并不知道这个方法的原理,只能是照搬来实现更新的效果。并且也没有查到关于这个方法的讲解。


(完)


Coding 个人笔记




以上是关于Webpack第五天的主要内容,如果未能解决你的问题,请参考以下文章

javaSE第五天

第五天

nacos1.1.4源码第五天 ap的实现

python第五天

python第五天

团队第二次冲刺第五天