
特点:
- 项目文档及相关的资源在根目录
- 数据库及项目配置会放在根目录(细节:数据库升级文件)
src中会对功能进行划分建不同的文件夹users、posts- 单个功能文件夹中,会包括一个完整 CURD 的相关文件 (dto/controller/module/providers/service)
- 抽离公共配置到
shared文件夹
特点:
- 根目录中存放 webpack、微服务配置 + 项目文档
src中会对功能进行划分建不同的文件夹:api、core、dynamodb-stream、image-resizer- 在核心模块中,按照功能模块进划分,与之相关的 entity、service 放置在同一文件夹中
特点:
- 项目文档及相关的资源在根目录,包括
typings、test、bin src中会对功能进行划分建不同的文件夹- 抽离公共代码到
common文件夹,配置文件放在config文件夹,实体类放置在entity中 - 鉴权相关的逻辑放在
auth - 把同类的
guards、filters、decorators、interceptors、interfaces、errors存放在common文件夹中
全局路径前缀
在 main.ts 添加:
ts
app.setGlobalPrefix('api/v1');Webpeck 热更新支持
【Node. Js 框架之 Nest JS 基础学习】 https://www.bilibili.com/video/BV14fDGYUEip/?p=17&share_source=copy_web&vd_source=320efa3d6a76c009ab23f7fcc174b3f4
首先,需要安装 Webpack 及其相关插件。如果您使用的是 Nest CLI,则安装以下包:
bash
npm i --save-dev webpack-node-externals run-script-webpack-plugin webpack如果您不使用 Nest CLI,则还需要安装 webpack-cli 和 ts-loader:
bash
npm i --save-dev webpack webpack-cli webpack-node-externals ts-loader run-script-webpack-plugin2.2 配置 Webpack
在您的项目根目录下创建一个 webpack-hmr.config.js 文件(如果您使用 Nest CLI)或 webpack.config.js 文件(如果您不使用 Nest CLI),并添加相应的配置。
使用 Nest CLI 的配置示例:
javascript
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 文件中添加 Webpack 相关的代码以启用 HMR:
typescript
declare const module: any;
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(process.env.PORT ?? 3000);
if (module.hot) {
module.hot.accept();
module.hot.dispose(() => app.close());
}
}
bootstrap();2.4 运行开发服务器
最后,在 package.json 中添加一个脚本以简化执行过程,并运行它:
json
"scripts": {
"start:dev": "nest build --webpack --webpackPath webpack-hmr.config.js --watch"
}bash
npm run start:dev这样,您的 NestJS 应用程序现在应该支持热更新了。