с angular 9 теперь у вас будет следующая структура сборки
dist
├── server
| └── main.js and some other files like firebase analytics stuff
└── browser
└── index.html and all files for the broswer
, чтобы проверить это, вам нужно дать следующую команду из вашего проекта root dir
node dist/server
это вызовет основной файл. js в папке сервера, и ваше приложение будет обслуживаться локально. На экране будет отображаться информация о локальном URL-адресе с портом.
Теперь для развертывания в firebase используйте следующий код
import * as functions from 'firebase-functions';
import * as path from 'path';
const app = require(path.resolve(__dirname, "./dist/server/main")).app; // change the path according to your project structure
const myApp = functions.https.onRequest(app());
, и у вас будет функция myApp, где вы можете доступ к вашему приложению Angular SSR
[ОБНОВЛЕНИЕ]
Нет фиксированного места, где вы инициализируете свои функции. все, что имеет значение, - это то, что путь dist/server/main
является правильным в функции myApp
Еще одна вещь, которую я забыл упомянуть, это то, что вы должны обновить свой пакет. json поле хостинга до следующей конфигурации =>
...
"hosting": [{
"target": "app",
"public": "/dist/browser", // change it according to your directory structure
"rewrites": [{
"source": "**",
"function": "myApp"
}]
}]
...
надеюсь, это поможет;)