0
因此,我查看了有关webpack HMR的文档,似乎找不到一个方法来加载模块加载服务器端文件。例如,我有一个用打字机编写的配置文件,我需要能够重新加载对该配置文件的更改。所以我需要在编译后进行更新。文档都倾向于使用webpack开发服务器,除了这一个HMR这不解释我的webpack配置应该看起来像使用HMR。任何帮助或建议都会很棒。Webpack热模块替换节点配置?
因此,我查看了有关webpack HMR的文档,似乎找不到一个方法来加载模块加载服务器端文件。例如,我有一个用打字机编写的配置文件,我需要能够重新加载对该配置文件的更改。所以我需要在编译后进行更新。文档都倾向于使用webpack开发服务器,除了这一个HMR这不解释我的webpack配置应该看起来像使用HMR。任何帮助或建议都会很棒。Webpack热模块替换节点配置?
可以在非常相似的方式向客户端侧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)编译在计时模式束。
https://github.com/webpack/docs/issues/45可能是一个很好的开始。 –