Тестовый блог на Angular
Публичная часть: https://angularblogtest-1b8f2.web.app/
Админка: https://angularblogtest-1b8f2.web.app/admin
- Что такое Angular
- Установка
- Создание компонентов
- Генерация компонентов
- Добавление PWA
- Как протестировать что сборка работает?
- Деплой приложения
Angular - js библиотека, которая в ядре использует RXJS и TypeScript, служит для разработки сложных сайтов
Документация: https://angular.io/docs
- Нужен node JS
- Установка Angular
npm install -g @angular/cli
- Для генерации нового проекта нужно зайти в папку проекта
ng new ng-basics
- Хотим ли добавить роутинг для проекта?
- Какой стиль использовать? Выбираю scss
- Происходит генерация проекта. В корне создается файл package.json, в котором прописаны все зависимости
- Запуск приложения
npm start
- Создать в папке app папку. В ней создать файл .ts
ng g c form --skipTests
--skipTests - не генерировать тесты
form - название компонента
c - сгенерировать компонент
g - сгенерировать
Метод bindings - служит для связки шаблона и компонента
Для байндинга атрибут нужно обернуть в квадратные скобки
Ивент байндинг - принимает пользовательские действия и дает команду самому компоненту
- Остановить выполнение проекта (ctrl+C)
- Запустить установку ng add @angular/pwa, подтвердить выполнение
Появятся файлы (manifest.webmanifest, ngsw-config.json)
В src\app\app.module.ts появляется ServiceWorkerModule, который регистрируется в imports
- Отредактировать ngsw-config.json:
Закэшировать шрифты:
"files": [
"/favicon.ico",
"/index.html",
"/manifest.webmanifest",
"/*.css",
"/*.js"
],
"urls": [
"https://fonts.googleapis.com/css?family=Roboto"
]На уровне "assetGroups" создать "dataGroups":
"dataGroups": [
{
"name": "firebase-posts",
"urls": [
"https://angularblogtest-1b8f2-default-rtdb.firebaseio.com/**"
],
"cacheConfig": {
"maxSize": 5,
"maxAge": "3600"
}
}
] - Сделать production сборку
ng build --prod
- После чего в корне создалась папка dist
- Установить http-server
npm install -g http-server
-
Перейти в папку dist
cd dist/
.Перейти в папку AngularBlogTest
cd AngularBlogTest/
В папке проекта запустить проект
http-server -p 4200
- В консоли перейти по доступному адресу (например http://127.0.0.1:4200).
В строке браузера добавить /index.html
- В консоли Application -> Service Worker видим зарегистрированный Service Worker (Source ngsw-worker.js)
- В Cache Storage можно увидеть закэшированные посты, значит Service Worker работает и приложение запускается быстрее, т.к. данные берутся из кэша
- Зайти в firebase -> hoisting -> начать
- Установить firebase-tools
npm install -g firebase-tools
- После установки пакета возвращаемся в firebase, нажимаем далее
firebase login
- Если не было аккаунта, то откроется вкладка браузера, где можно выбрать аккаунт
firebase init
Обязательно нужно находиться в корневой папке (
cd..
- выйти из папки)- Выбрать Hoisting (выбрать пробелом -> enter)
- Какой проект используем?
Use an existing project
- Выбрать проект
- Какая директория является публичной? dist/AngularBlogTest
- Необходимо ли конфигурировать данное приложение как single page application? - Y
- Настроить автоматические сборки и развертывания с помощью GitHub? -
- File dist/AngularBlogTest/index.html already exists. Overwrite? - n
firebase deploy