cd ..
ncc 打包编译nestjs
06-22. 0.905 分钟
背景:
最近在使用ncc 打包编译 nestjs,由于 nestjs 使用 hbs 作为模版引擎。
原先官网样例:
npm install --save hbs
import { NestFactory } from "@nestjs/core";
import { NestExpressApplication } from "@nestjs/platform-express";
import { join } from "path";
import { AppModule } from "./app.module";
async function bootstrap() {
const app = await NestFactory.create<NestExpressApplication>(AppModule);
app.useStaticAssets(join(__dirname, "..", "public"));
app.setBaseViewsDir(join(__dirname, "..", "views"));
//直接使用设置模版
app.setViewEngine("hbs");
await app.listen(3000);
}
bootstrap();
这样通过 ncc 编译,会存在丢失问题:
因此做如下设置即可:
import { NestFactory } from "@nestjs/core";
import { NestExpressApplication } from "@nestjs/platform-express";
import { join } from "path";
import { AppModule } from "./app.module";
import * as HBS from "hbs";
async function bootstrap() {
const app = await NestFactory.create<NestExpressApplication>(AppModule);
app.useStaticAssets(join(__dirname, "..", "public"));
app.setBaseViewsDir(join(__dirname, "..", "views"));
//手动重写
app.set("view engine", "hbs");
app.engine("hbs", HBS.__express);
await app.listen(3000);
}
bootstrap();
通过将其引入,再次编译即可。