Развертывание Angular-приложения на Netlify

На сегодняшний день Netlify  является одной их лучших платформ для развертывания приложений и сайтов. Но сервис также можно использовать для размещения обычных JavaScript-приложений, созданных на основе Angular, React и Vue.

Как развернуть Angular-приложение на Netlify?

  • Создайте проект помощью Angular CLI.
  • Создайте репозиторий на GitHub.
  • Опубликуйте проект на GitHub.
  • Настройте Netlify, чтобы он ссылался на репозиторий GitHub.
  • Настройте Netlify для сборки и развертывания.

Создание Angular- проекта

Чтобы создать проект, в Angular CLI выполните терминале следующую команду:

ng new my-ng-netlify-project --routing

Перейдите в новый каталог:

cd my-ng-netlify-project

Теперь у нас есть новый Angular- проект. Замените HTML-код в файле app.component.html следующим:

<ul>
        <li><a [routerLink]="['/']">Home</a></li>
        <li><a [routerLink]="['/about']">About</a></li>
</ul>

<router-outlet></router-outlet>

В результате этих операция мы получили страницу с меню навигации и ссылкой на раздел About и главную страницу.

Теперь создадим компоненты Home и About. Выполните следующую команду, чтобы добавить компонент Home:

ng g c home

В файл home.component.html добавьте следующий HTML-код:

<h1>My Home Page</h1>

Запустите следующую команду, чтобы создать компонент About:

ng g c about

В файл about.component.html добавьте следующий HTML-код:

<h1>My About Page</h1>

Затем зарегистрируем маршруты в файле app-routing.module.ts:

const routes: Routes = [
  { path: '', component: HomeComponent }, 
  { path: 'about', component: AboutComponent }
];

Теперь у нас есть Angular-приложение, и его можно опубликовать на GitHub.

git add .
git commit -m "My Netlify Angular project"

Создание репозитория GitHub

Перейдем на GitHub и создадим новый репозиторий.

Создание репозитория GitHub

Далее выполним в терминале следующие команды. Они импортируют наш Angular-проект в репозиторий GitHub:

git remote add origin git@github.com:pjlamb12/my-ng-netlify-project.git
git push -u origin master

Не забудьте изменить git@github.com: pjlamb12 / my-ng-netlify-project.git на URL-адрес, предоставленный GitHub

Настройка Netlify для сборки и развертывания приложения

Сначала подключим новый репозиторий GitHub к Netlify и установим параметры сборки. После этого Netlify создаст и развернет наше приложение. Давайте перейдем на app.netlify.com.

Если вы еще не зарегистрировались в Netlify, сделайте это. Это можно сделать с помощью учетной записи GitHub.

Создание нового сайта на Netlify

После входа в систему нажмите на кнопку «Новый сайт из Git». Затем вы увидите следующую панель:

Создание нового сайта на Netlify

Выберите GitHub, а затем выполните поиск репозитория, созданного для Angular-приложения.

Выбор ветки GitHub для команд развертывания и сборки

Для развертывания в Netlify нужно указать следующие параметры:

  • Ветка в GitHub для использования на сайте.
  • Команды для запуска сборки приложения.

Выберите проект my-ng-netlify-project, и вы увидите следующее:

Выбор ветки GitHub для команд развертывания и сборки

Netlify позволяет выбрать, какую ветвь следует использовать для сборок. Затем можно ввести команду сборки (в данном случае ng build —prod). После этого указать Netlify папку, в которой находится собранный проект. По умолчанию Angular 7+ собирает проект в папке. dist/project-name. В нашем случае это dist/my-ng-netlify-project.

После того, как вы заполнили форму и нажали кнопку «Развернуть сайт», перейдете на страницу с описанием проекта. В верхней части этой страницы вы увидите блок заголовка:

Выбор ветки GitHub для команд развертывания и сборки - 2

"Angry-stonebraker-390db1" - это автоматически сгенерированный идентификатор сайта. Но его можно изменить.

Когда сборка будет завершена, сайт станет доступен по адресу angry-stonebraker-390db1.netlify.com.

Маршрутизация Catchall

Перейдите на страницу About и обновите страницу браузера. После этого вы увидите следующее:

Маршрутизация Catchall

Нам нужен механизм перенаправления Netlify на файл index.html. Это связано с тем, что маршрут /about расположен не на сервере, а на стороне клиента. К счастью, Netlify предоставляет способ сделать это.

Добавьте в проект Angular новый файл в каталог src: src/_redirects. В этот файл мы добавим следующий код:

/*    /index.html    200

Также нужно отредактировать angular.json, чтобы файл _redirects был включен в сборку. Мы можем добавить его в массив assets после favicon и папки src/assets.

После внесения изменений можно отправить подготовленные файлы в репозиторий. Когда мы это сделаем, Netlify автоматически обновит сайт.

Angular Universal

Приложение, которое мы создали и развернули на Netlify, не является JAMStack-сайтом, полностью сгенерированным на сервера. В Angular есть опция рендеринга на стороне сервера. Она называется Angular Universal.

Заключение

Netlify - отличная платформа, которая позволяет легко запускать сайты и веб-приложения. Поэтому в следующий раз, когда у вас появится идея для создания Angular- приложения разверните на Netlify.

Вадим Дворниковавтор-переводчик статьи «Deploying an Angular App to Netlify»