NestJs配置热重载 给你的NestJs程序提提速

给你的NestJs程序提提速

你每次写完你的程序nestjs都会重启你的Node进程,那么当你的nest项目变得越来越大的时候,就会发现你的项目编译速度越来越慢!

怎么解决? 加入webpack热重载

原文链接:

https://docs.nestjs.com/recipes/hot-reload

我的配置以及配置过程中的避坑指南:

  • 第一步:安装

    npm i --save-dev webpack-node-externals run-script-webpack-plugin webpack

  • 第二步:创建文件以及配置写入配置文件

    • 在你的根目录下创建一个webpack-hmr.config.js文件

    • 在该文件中写入如下内容:

      /* eslint-disable*/
      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,
              autoRestart: false,
            }),
          ],
        };
      };
      
  • 第三步在你的main.ts中写入如下内容

    import { NestFactory } from '@nestjs/core';
    import { AppModule } from './app.module';
    async function bootstrap() {
      const app = await NestFactory.create(AppModule);
      app.setGlobalPrefix('api/v1'); //添加接口前缀
      await app.listen(3000);
      //这里
      if (module.hot) {
        module.hot.accept();
        module.hot.dispose(() => app.close());
      }
      //上面
    }
    bootstrap();
    
  • ok你的main.js报错了 请安装这个npm i -D @types/webpack-env 注意是npm 不要换 重心打开你的vscode就可以了

记得修改一下启动命令在package.json中
"start:dev": "nest build --webpack --webpackPath webpack-hmr.config.js --watch"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫汪枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值