第 1 步 - 创建 Nest 应用程序
nx generate @nrwl/nest:app myapp
第 2 步 - 添加功能(不在apps文件夹内)。
npm install -g firebase-tools
firebase init functions
删除函数目录。
rm -rf functions
现在更新 firebase 配置firebase.json以指向 Nest 应用程序。
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
],
"source": "."
}
}
第 3 步 - 安装依赖项
npm i firebase-functions firebase-admin express @nestjs/platform-express
第 4 步 - 更新 package.json
将以下行添加到您的 package.json。
"main": "dist/apps/myapp/main.js",
"engines": {
"node": "<=10"
}
第 5 步 - 导出服务器
覆盖apps/myapp/src/main.ts.
import { NestFactory } from '@nestjs/core';
import { ExpressAdapter } from '@nestjs/platform-express';
import { AppModule } from './app/app.module';
import * as express from 'express';
import * as functions from 'firebase-functions';
const server = express();
export const createNestServer = async (expressInstance) => {
const app = await NestFactory.create(
AppModule,
new ExpressAdapter(expressInstance),
);
return app.init();
};
createNestServer(server)
.then(v => console.log('Nest Ready'))
.catch(err => console.error('Nest broken', err));
export const api = functions.https.onRequest(server);
第 6 步 - 构建、服务、部署
nx build myapp && firebase serve --only functions