2016-10-18 85 views
0

因此,我查看了有关webpack HMR的文档,似乎找不到一个方法来加载模块加载服务器端文件。例如,我有一个用打字机编写的配置文件,我需要能够重新加载对该配置文件的更改。所以我需要在编译后进行更新。文档都倾向于使用webpack开发服务器,除了这一个HMR这不解释我的webpack配置应该看起来像使用HMR。任何帮助或建议都会很棒。Webpack热模块替换节点配置?

+0

https://github.com/webpack/docs/issues/45可能是一个很好的开始。 –

回答

0

可以在非常相似的方式向客户端侧HMR设置它:

1)目标 '节点':

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

2)使能热模块更换,无论是通过CLI选项--hot或者通过配置:

// 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)编译在计时模式束。