You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
_Большая часть команд и инструкций написаны для операционных систем Linux и MacOS._
5
11
6
-
*Большая часть команд и инструкций написаны для операционных систем Linux и MacOS.*
12
+
## Использование
7
13
8
-
## Зависимости
9
-
- Node.js v18 – среда исполнения на языке JavaScript/TypeScript
10
-
- NPM – консольный менеджер пакетов для установки библиотек (идет в поставке с Node.js)
11
-
- Vue.js – фраемворк для разработки фронтенда
12
-
- Vite – консольный менеджер для удобства работы с Vue.js
13
-
- Storybook - фреймворк для разраобтки и документации компонентов и экранов.
14
-
15
-
## Frontend разработка на Vue.js
14
+
TODO: Библиотека можно будет установить из npm под скоупом @profcomff. Она будет устанавливаться как плагин, и внедрять в глобальный скоуп приложения все компоненты -- по аналогии с vuetify. Все наши компоненты будут иметь приставку `Vu` (Viribus Unitis): `VuButton`, `VuTag` и т.д.
16
15
17
-
Фронтенд (англ. front end, frontend) — презентационная часть web приложения, её пользовательский
18
-
интерфейс и связанные с ним компоненты.
16
+
TODO: Для референса нужно будет захостить собранный сторибук.
19
17
20
-
В данном примере используется популярный фраемворк [Vue.js](https://vuejs.org/). Разработка ведется
21
-
на языке TypeScript.
18
+
## Зависимости
22
19
20
+
- Node.js >= v18 – среда исполнения на языке JavaScript/TypeScript
21
+
- NPM – консольный менеджер пакетов для установки библиотек (идет в поставке с Node.js)
22
+
- Vue.js – фреймворк для разработки фронтенда
23
+
- Vite – консольный менеджер и инструмент сборки для удобства работы с Vue.js
24
+
- Storybook – фреймворк для разраобтки и документации компонентов и экранов.
23
25
24
26
## Разработка
25
27
26
28
Для удобства разработки в VS Code создан [workspace](../frontend.code-workspace) с преднастроенными
27
29
командами и рекомендованными расширениями для работы.
28
30
31
+
### Начало работы
32
+
29
33
Перед началом работы нужно установить зависимости командой
34
+
30
35
```
31
36
pnpm install
32
37
```
33
38
34
-
Для локального запуска необходимо выполнить команду
39
+
Если используешь VS Code, то следует настроить автоформатирование:
40
+
41
+
1. Открыть файл с расширением `.vue`.
42
+
2. Открыть палитру команд (Help > Show All Commands или `Ctrl+Shift+P`)
43
+
3. Ввести и выбрать `Format document with`.
44
+
4. Выбрать `Configure Default Formatter`.
45
+
5. Выбрать `Prettier`.
46
+
47
+
Теперь можно форматировать файлы с помощью `Shift+Alt+F`. Еще можно настроить автоформатирование при сохранении файла (File > Preferences > Settings, Format on save).
48
+
49
+
### Работа со Storybook
50
+
51
+
Для локального запуска Storybook необходимо выполнить команду
52
+
53
+
```
54
+
pnpm sb
55
+
```
56
+
57
+
На localhost порте 6006 откроется storybook. Он поддерживает перезагрузку при изменении кода (hot module replacement), но иногда может что-то кешировать -- тогда лучше перезапустить.
58
+
59
+
В левой вкладке будут перечислены все истории -- это могут быть компоненты, наборы компонентов или целые экраны. При нажатии на них можно посмотреть на то, как компонент выглядит, попробовать поменять какие-то его параметры и посмотреть, как он реагирует на события (например, нажатие).
60
+
61
+
Создание компонента:
62
+
63
+
1. В папке `/src/components/` создай папку с названием компонента (например, `button`).
64
+
2. Создай в этой папке файл `Vu{НазваниеКомпонента}.vue` и в нем описываем шаблон компонента.
65
+
3. Стилизуй компонент с помощью классов vuetify.
66
+
4. Опиши модели и пропы, которые может принимать компонент. С помощью /\*\*\*/ опиши пропы и модели (так автоматически генерируется документация).
67
+
5. В этой же папке создай `Vu{НазваниеКомпонента}.stories.ts`.
68
+
6. В этом файле опиши meta, а потом истории -- различные состояния и опции компонента. Подробнее смотри в туториале Storybook или в уже написанных компонентах.
69
+
70
+
### Пулл-реквест
71
+
72
+
- Перед отправкой проверь стили: `pnpm check`
73
+
-_Опционально_: более строгая проверка `pnpm check:hard`.
74
+
- Заполни шаблон пулл-реквеста: что, как и зачем сделал
75
+
- Запроси ревью
76
+
77
+
### Запуск приложения (опционально)
78
+
79
+
Для локального запуска приложения (чтобы проверять компоненты вне сторибука) необходимо выполнить команду
80
+
35
81
```
36
82
pnpm dev
37
83
```
@@ -43,50 +89,36 @@ pnpm sb
43
89
44
90
45
91
## Инструкции
92
+
46
93
### Получение кода на свой компьютер
47
-
Для работы с данным примером необходимо забрать его к себе на ПК. Для этого нужно:
48
-
1.*(Опционально)* Если вы хотите далее опубликовать код на GitHub полезно сначала скопировать
49
-
репозиторий к себе кнопкой Fork на GitHub. Кнопка доступна в правом верхнем углу
При создании запроса на слияние, автоматически создаются проверки кода юниттестами и на стили.
80
120
Следующие тесты будут запущены:
121
+
81
122
- Проверки стилей `eslint`, `prettier`, `stylelint` на код в папке `frontend`
82
123
83
124
Настройки автотестов находятся в файле[.github/workflows/checks.yml](.github/workflows/checks.yml).
84
-
85
-
### Публикация готового приложения
86
-
На данном этапе вам необходимо разместить приложение на каком-либо хостинге, поддерживающем протокол https.
87
-
88
-
Для этого подойдет любой VPS сервер, который вы можете найти в интернете. Мы рекомендуем использовать VPS сервера на операционной системе linux, для удобства размещения приложений и компонентов использовать Docker.
89
-
90
-
Чтобы получить SSL сертификаы для поддержки https можно использовать letsencrypt.com, предоставляющий SSL сертификаты бесплатно. Для удобства работы можно использовать веб сервер с встроенной поддержкой этих сертификатов, например Traefik или Caddy.
91
-
92
-
Шаблон приложения имеет уже готовые [Dockerfile](cicd/Dockerfile) для сборки вашего приложения, файл [docker-compose.production.yml](cicd/docker-compose.production.yml) с настройками развертывания приложения с Caddy Server и включенным https, а также базой данных PostgreSQL.
0 commit comments