欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Nest.js 实战 (十一):配置热重载 HMR 给服务提提速

Nest.js 实战 (十一):配置热重载 HMR 给服务提提速

2025/4/3 12:10:07 来源:https://blog.csdn.net/qq_36117388/article/details/141813944  浏览:    关键词:Nest.js 实战 (十一):配置热重载 HMR 给服务提提速

前言

Nest.js 服务对应用程序的引导过程影响最大的是 TypeScript 编译。每次当我们修改文件时,应用程序都会重新编译整个项目,当应用程序比较庞大时,项目编译会越来越慢,会有很明显的效率低下问题。

那这个问题该怎么解决呢?使用 webpack HMR(Hot-Module Replacement) 能很大程度上降低应用实例化所用的时间。

具体教程

  1. 安装所需的依赖包
pnpm add webpack-node-externals run-script-webpack-plugin webpack -D
  1. 根目录下新增 webpack 配置文件 webpack-hmr.config.js
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 }),],};
};
  1. 为了启用 HMR,打开应用程序入口文件( main.ts )并添加一些与 webpack 相关的说明
declare const module: any;async function bootstrap() {const app = await NestFactory.create(AppModule);await app.listen(3000);if (module.hot) {module.hot.accept();module.hot.dispose(() => app.close());}
}
bootstrap();
  1. 修改 package.json 脚本命令
"start:dev": "nest build --webpack --webpackPath webpack-hmr.config.js --watch"

总结

如果您想要更高级的配置,比如自定义 webpack 配置来更好地控制HMR的行为,您可以在 webpack-hmr.config.js 文件中进行调整。这个文件位于项目的根目录下,并且包含了一些默认的 webpack 配置选项。您可以在其中添加或修改 HMR 相关的配置。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词