首页 文章

Webpack热模块更换节点配置?

提问于
浏览
0

所以我看了webpack HMR的文档,似乎找不到热模块加载服务器端文件的方法 . 例如,我有一个用typescript编写的配置文件,我需要能够在更改到该配置文件时重新加载 . 所以我需要在编译后更新 . 文档都倾向于使用webpack dev服务器,除了这个HMR,它没有解释我的webpack配置应该是什么样子才能使用HMR . 任何帮助或建议都会很棒 .

1 回答

  • 0

    您可以使用与客户端HMR非常相似的方式进行设置:

    1)目标'节点':

    // webpack.config.js
    module.exports = {
        ...
        target: 'node'
        ...
    }
    

    2)通过cli选项 --hot 或通过config启用热模块更换:

    // webpack.config.js
    module.exports = {
        ...
        plugins: [new webpack.HotModuleReplacementPlugin()]
        ...
    };
    

    3)在您的入口点包含HMR管理代码:

    // webpack.config.js
    module.exports = {
        ...
        entry: [
            'webpack/hot/poll?1000', // This differs from client side HMR
            'app.js'
        ]
        ...
    };
    

    4)使用 module.hot.accept 教你的代码如何热更新:

    注意:这通常是由装载机抽象出来的 .

    // app.js
    let config = require('./config');
    setInterval(() => {
        console.log(config.FOO_BAR);
    }, 2000);
    
    // NOTE: This would need to be done everywhere you use './config' so you might want to create a loader to generate it.
    if (module.hot) {
        module.hot.accept('./config', () => {
            config = require('./config');
        });
    }
    

    4)在监视模式下编译捆绑包 .

相关问题