Я использовал все вышеупомянутые решения, но в конечном итоге работал только после того, как я включил IMAP-доступ из настроек Gmail Ссылка на включение доступа IMAP в настройках gmail
Конечно, точки в других решениях тоже требовались.
Вы можете выполнить решение app.sendFile ('app.component.html'). Единственное преимущество использования сервера ng заключается в том, что при разработке угловой стороны ng-сервер автоматически подберет изменения. Но вы можете использовать ng build --watch для этого. Я лично еще не использовал nodemon, но это звучит как разумный solultion. Проблема с выполнением ng-сервера и узла заключается в том, что вам нужно использовать CORS для того, чтобы все это работало - сервер Angular будет использовать другой порт, и поэтому будет другим сайтом, так сказать. Я сделал это некоторое время.
Он будет выглядеть примерно так:
const cors = require('cors')
var corsOptions = {
origin: 'http://localhost:4200',
optionsSuccessStatus:
}
app.use(cors(corsOptions));
Это субъективный вопрос, поэтому я могу только высказать свою точку зрения: лучше отделить клиента от своего сервера. Таким образом, вы обязательно узнаете, какая часть идет туда;) Кроме того, вы, вероятно, будете использовать два совершенно разных стека для back-and front-end (Express vs Angular). Сохранение двух отделенных проектов будет держать ваши зависимости раздельными и т. Д. И если в какой-то момент вы хотите изменить свой стек для клиента или сервера, то вы можете без изменения стека на все это или пытаться узнать, какая часть является клиентом какая часть является сервером.
В настоящее время я работаю над проектом, в котором клиент и сервер находятся в одном месте. Я определенно не рекомендую его никому ... Особенно для веб-проекта.
Тем не менее, я бы посоветовал иметь те же соглашения об именах / отступов / ... в обоих проектах (поскольку они находятся на одном языке). Это позволит людям легко работать над обоими. Угловой имеет некоторые рекомендации о том, как написать отличный код .
Не совсем странно (по крайней мере для меня), чтобы сервер был разделен, потому что таким образом вы можете работать только сервер, не потребляя ресурсы для неиспользуемого клиента. Кроме того, вы можете спроектировать своего клиента с помощью Lorem ipsum, чтобы изначально вам не нужно было запускать сервер для его работы;)
Сторона примечания: ng serve
предполагается использовать только для целей развития , Не используйте его для производства. Для развертывания вашего клиента: ng build --prod
. Это скомпилирует ваш клиент и поместит его в папку, указанную в вашей конфигурации компиляции (/ dist по умолчанию).