BlogLFlower - информационый сайт о растениеводстве
Проект создан с помощью Angular CLI версии 12.2.10
Используются:- AngularMaterial
- плагин редактора quill
- firebase
Проект: https://bloglflower.web.app/
Админка: https://bloglflower.web.app/admin
- В публичной части размещен список постов о растениях. В необходимый пост можно перейти по кнопке "Открыть"
- В административной части сайта существует возможность создавать/редактировать/удалять посты.
- БД подключена с использованием firebase с помощью методов, которые позволяют работать с firebase как c RestAPI (набор URL, к которым идет обращение и получение данных)
- В административной части сайта используется форма авторизации с проверкой на валидацию, обработкой ошибок. Права пользователей настраиваются в firebase. Время жизни токена 3600.
- Без авторизации с правами администратора невозможно попасть на любую страницу админки (например https://bloglflower.web.app/admin/dashboard)
- В административной части используется фильтрация по названию поста (search.pipe.ts)
- При создании/удалении/редактировании поста выводится сообщение (например "Пост создан"). Реализовано с помощью созданного плагина сообщений (alert.component.ts)
- Используется локализация (regicterLocaleDate). При выводе даты поста используется pipe date (| date:'medium':'':'ru')
- Деплой приложения осуществлен с помощью firebase
https://www.npmjs.com/package/ngx-quill
-
npm i ngx-quill
- для проектов, использующих Angular < v5.0.0 установить
npm install ngx-quill@1.6.0
-
установить @angular/core, @angular/common, @angular/forms, @angular/platform-browser, quillv1.x, @types/quillv1.x и rxjs одноранговые зависимости ngx-quill
Т.к. есть все пакеты, кроме quill, то необходимо его установить
npm install quill
Если возникают ошибки, например:
Module '"quill"' has no exported member 'Delta'. Did you mean to use 'import Delta from "quill"' instead?
тогда установить@types/quill": "^1.3.10"
Если всё равно ошибки, тогда в package.json в dependencies прописать
@types/quill": "^1.3.10"
пересобрать проект (npm install) -
В глабальном файле стилей (style.scss) подключить стили темы: bubble.css, snow.css и core.css quilljs в свой index.html (вы можете найти их в node_modules/quill/dist), или добавьте их в свои файлы css/scss с @importинструкциями, или добавьте их внешние стили в свою сборку процесс.
@ import '~quill/dist/quill.core.css'; @ import '~quill/dist/quill.bubble.css'; @ import '~quill/dist/quill.snow.css' ;
СОВЕТ: Если вы используете модули с отложенной загрузкой, вам нужно добавить QuillModule.forRoot()их к импорту в корневом модуле, чтобы убедиться, что Config сервисы зарегистрированы.
- Остановить выполнение проекта (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
- Зайти в firebase -> hoisting -> начать
- Установить firebase-tools
npm install -g firebase-tools
- После установки пакета возвращаемся в firebase, нажимаем далее
firebase login
- Если не было аккаунта, то откроется вкладка браузера, где можно выбрать аккаунт
firebase init
- !!!!!!!!!Обязательно нужно находиться в корневой папке (cd.. - выйти из папки)
- Are you ready to proceed? (Y/n) Y
- Выбрать Hoisting c FireBase (выбрать пробелом -> enter)
- Use an existing project Какой проект используем?
- Выбрать пр
- What do you want to use as your public directory? Какая директория является публичной? dist/AngularBlogTest
- Configure as a single-page app (rewrite all urls to /index.html)? Необходимо ли конфигурировать данное приложение как single page application? - Y
- Set up automatic builds and deploys with GitHub? Настроить автоматические сборки и развертывания с помощью GitHub? - y
- For which GitHub repository would you like to set up a GitHub workflow? (format: user/repository) Marisha-tech/BlogLFlower
- Set up the workflow to run a build script before every deploy? (y/N) - y
- File dist/AngularBlogTest/index.html already exists. Overwrite? - n
firebase deploy
- После чего в консоло сообщение Firebase initialization complete!
В корне приложения появляются файлы .firebaserc, firebase.json - Переходим в firebase нажимаем далее
- В консоли написать
firebase deploy