所以我看了webpack HMR的文档,似乎找不到热模块加载服务器端文件的方法。例如,我有一个用typescript编写的配置文件,我需要能够在更改到该配置文件时重新加载。所以我需要在编译后更新。文档都倾向于使用webpack dev服务器,除了这个HMR,它没有解释我的webpack配置应该是什么样子才能使用HMR。任何帮助或建议都会很棒。
答案 0 :(得分: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)以监视模式编译捆绑包。