Uso webpack para agrupar mi código nodejs. Como es bien sabido, podríamos usar webpack-dev-server para crear un entorno para desarrolladores, entonces, ¿qué hay de nodejs? Sé que nodemon puede funcionar, pero reinicia todo el proyecto, quiero una forma HMR.
Puedes seguir esto:
npm i --save-dev webpack-node-externals run-script-webpack-plugin webpackwebpack-hmr.config.js en el directorio raíz de su aplicación y coloque esto: const nodeExternals = require('webpack-node-externals'); const { RunScriptWebpackPlugin } = require('run-script-webpack-plugin'); module.exports = function (options, webpack) { return { ...options, entry: ['webpack/hot/poll?100', options.entry], externals: [ nodeExternals({ allowlist: ['webpack/hot/poll?100'], }), ], plugins: [ ...options.plugins, new webpack.HotModuleReplacementPlugin(), new webpack.WatchIgnorePlugin({ paths: [/\.js$/, /\.d\.ts$/], }), new RunScriptWebpackPlugin({ name: options.output.filename }), ], }; };main.js : async function bootstrap() { <Your Express middleware and etc> if (module.hot) { module.hot.accept(); module.hot.dispose(() => server.close()); } }inspirado en Nest.js HMR