Развертывание Angular 6 Universal с использованием Elastic Beanstalk AWS - PullRequest
0 голосов
/ 13 сентября 2018

Я работаю над Angular 6 Universal на AWS.Мой веб-сайт размещен на AWS, и я развертываю его с помощью Elastic Beanstalk.

Приложение My Angular 6 Universal было создано с использованием @ ng-toolkit / universal с использованием углового интерфейса командной строки, который автоматически добавляет необходимую конфигурацию сервера вapplication.

Я столкнулся с проблемой при развертывании. У меня всегда происходит сбой.Я понятия не имею, как развернуть рабочую версию скомпилированных угловых и серверных файлов Nodejs вместе с ней.Я искал в Google и не смог найти правильного решения.

Шаги, которые я сделал:

  1. ng new my-app --routing
  2. ng add @ ng-toolkit / universal
  3. Внесены ли необходимые изменения в несколько файлов
  4. Выполнена команда для компиляции рабочей версии и сгенерированных файлов сервера
  5. / dist папка, созданная с помощью браузера и версии сервера

Структура папки выглядит примерно так:

folder structure

Я попытался развернуть / dist на сервере, но не удалось.Я попытался развернуть всю корневую папку с помощью Typescript, но все равно не смог.

Я наконец-то понял проблему и создал эту ветку, чтобы она могла помочь другим.

1 Ответ

0 голосов
/ 13 сентября 2018

Elastic Beanstalk по умолчанию пытается сначала запустить Server.js файл, если он не может найти, затем app.js , если он не может найти, тогда запустит команду "npm start"

Итак, есть 2 решения

  1. Файл local.js (созданный @ ng-toolkit) запускает сервер nodejs,поэтому вы можете либо переименовать его в server.js , либо app.js , чтобы EB выполнил его после успешного развертывания, а затем развернул всю корневую папку на вашем сервере, используя "ebразвернуть " command.
  2. Или скопировать local.js в / dist папку и переименовать ее в app.js / server.js и отредактироватьфайл для изменения каталога "./ имя_файла сервера"

// generated by @ng-toolkit/universal
    const port = process.env.PORT || 8080;
    
    const server = require('./_server'); <!-- Renamed to _server -->
    
    server.app.listen(port, () => {
        console.log("Listening on: http://localhost:" + port );
    });

И последний и важный шаг.

  1. Elastic beanstalk завершается неудачно при развертывании и выдает ошибку при установке @ ng-toolkit.Поскольку @ ng-toolkit / universal находится на бета-версии, возможно, в нем есть ошибка.
  2. Итак, откройте package.json файл и переместите "@ ng-toolkit / universal": от зависимостей до devDepedencies

Вот и все!Теперь разверните и ваше приложение должно работать.Пожалуйста, дайте мне знать, если у вас возникнут какие-либо проблемы или другие рекомендации по развертыванию.

...