【发布时间】:2020-09-21 20:36:51
【问题描述】:
我为一家有特定需求的工厂开发了一个小型应用程序。这是一个小型应用程序,本地使用人数少于 10 人。
目前,我的后端和前端在同一个 git 存储库中。
存储库结构如下所示
--README.md
--.gitignore
--document
--projects
|--backend // Nestjs API
|--frontend // Angular
我已经准备好 NestJS 来提供静态文件,这意味着我已经将我的 Angular 构建器配置为如下工作:
angular.json
...
"options": {
"outputPath": "../backend/client/dist",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
...
我的 NestJs 服务器配置为提供静态文件:
main.ts
const PORT = process.env.PORT || 8080;
async function bootstrap() {
const app = await NestFactory.create<NestExpressApplication>(AppModule);
app.enableCors();
app.setGlobalPrefix('api');
await app.listen(PORT);
}
...
app.module.ts
imports: [
TypeOrmModule.forRoot(),
ServeStaticModule.forRoot({
rootPath: join(__dirname, '..', 'client/dist'),
}),
直到今天,我还在使用带有npm run start:dev 的 npm,它允许我自动构建我的数据库并运行后端服务器。
现在,我需要将后端和前端部署到同一台服务器并构建所有内容。
什么是最好的方法? 我是否应该首先将 angular 构建到 dist 文件夹中,构建 nestjs .. 我只能将 dist 文件夹放到生产服务器上吗?
【问题讨论】:
-
您是否使用 NestJs 来为您的 Angular 应用程序提供服务?
-
是的!我的 NestJs 应用程序正在为我的 Angular 客户端提供服务。我创建了一个脚本来部署所有内容......
-
你是在linux还是windows上部署?
-
你也在用apache吗?
-
开发环境在 Windows 下运行,所以我创建了一个小 Powershell 脚本,它运行 CLI 工具来构建所有内容(Angular、Nest、配置),我的产品环境是一个运行 Nodejs 的 LXD 容器服务器,使用PM2管理进程
标签: angular typescript deployment nestjs