给你的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"