Подходит ли команда `ng serve` для производства? - PullRequest
1 голос
/ 21 мая 2019

Я строю небольшой проект, используя Angular 7. При запуске

ng serve

и сервер NodeJS запускается для обработки запросов, блокирует ли каждый запрос до завершения обработки? Мы пытаемся оценить, насколько эффективным будет использование этого в производственной среде, а не более традиционным сервером приложений.

Ответы [ 4 ]

4 голосов
/ 23 мая 2019

Запустите build --prod, чтобы создать папку «./dist».

Затем вы должны поместить это на веб-сервер.

Вы можете использовать Angular Server Side Rendering (SSR), чтобы запустить его на сервере node.js.

Вы не должны использовать ng serve для производства, потому что он использует webpack-dev-server, который предназначен только для разработки.

Github ссылка

1 голос
/ 29 мая 2019

ng serve запускает сервер разработки веб-пакетов.

a сервер разработки .

Это сделано для того, чтобы имитировать производственную сборку и увидеть ваше окончательное приложение в стиле эсей.

Если у вас не было этой команды, вам нужно будет выполнить команду, такую ​​как simplehttpserver , после перестройки всего приложения при каждом изменении.

Это удобноинструмент, предоставляемый CLI для облегчения вашей разработки, ни в коем случае он не подходит для производственного режима.Это сервер без безопасности, без оптимизации, без производительности, без ... Ну, без всего, что делает сервер, сервер.По умолчанию это даже не делает ваше приложение доступным за пределами вашего localhost.Не очень полезен для производственного режима ...

Так что, я повторяю, , никогда , никогда не используйте эту команду для своего производственного сервера.

0 голосов
/ 30 мая 2019

При использовании ng serve вы создаете внутреннюю среду nodejs с веб-сервером для обработки запросов к вашему угловому приложению. Это отлично подходит для перезагрузки и быстрого запуска при разработке. Но такие статические страницы не нужны.

В конце концов, Angular - это просто фреймворк, рассказывающий вам о том, как построить SPA. Независимо от того, какую платформу или библиотеку вы используете, вы всегда будете получать index.xxx, файлы Javascript и другие файлы ресурсов от поставщиков или изнутри. Только эти вопросы относятся к браузеру, загружающему веб-страницу.

Следовательно, вам нужно создать приложение для генерации статических файлов, которые будут обслуживаться (т.е. ng build --prod). Тогда у вас есть 2 хороших варианта:

  1. Выберите веб-сервер, который будет обслуживать файлы (например, nginx) на выделенном сервере (или даже контейнере).
  2. Поместите файлы за провайдером CDN. Поскольку они статичны, они будут кэшироваться и отправляться браузеру, запрашивающему их в зависимости от его местоположения.

Я бы предпочел № 2 вместо того, чтобы # 1 заставлять вас продолжать использовать ресурсы (ЦП, ОЗУ, HDD) для файлов, которые будут запрашиваться не так часто. Я говорю не часто, потому что ваш SPA будет обрабатывать все маршруты внутри себя в браузере клиента (и минимум один раз в день будет запрашивать обновление кэша).

0 голосов
/ 30 мая 2019

Пробег ng prod --build Он сгенерирует код minification в папке dist. Вы должны загрузить содержимое файла этой папки "dist". Это даст более быстрый ответ для загрузки веб-страниц.

Подробнее см. Руководство по угловому развертыванию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...