|
2 | 2 |
|
3 | 3 | В этом репозитории представлен пример простейшего фронтенд-сервиса с Vue.js. |
4 | 4 |
|
| 5 | +_Большая часть команд и инструкций написаны для операционных систем Linux и MacOS._ |
5 | 6 |
|
6 | | -*Большая часть команд и инструкций написаны для операционных систем Linux и MacOS.* |
| 7 | +## Использование |
7 | 8 |
|
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 |
| 9 | +TODO: Библиотека можно будет установить из npm под скоупом @profcomff. Она будет устанавливаться как плагин, и внедрять в глобальный скоуп приложения все компоненты -- по аналогии с vuetify. Все наши компоненты будут иметь приставку `Vu` (Viribus Unitis): `VuButton`, `VuTag` и т.д. |
16 | 10 |
|
17 | | -Фронтенд (англ. front end, frontend) — презентационная часть web приложения, её пользовательский |
18 | | -интерфейс и связанные с ним компоненты. |
| 11 | +TODO: Для референса нужно будет захостить собранный сторибук. |
19 | 12 |
|
20 | | -В данном примере используется популярный фраемворк [Vue.js](https://vuejs.org/). Разработка ведется |
21 | | -на языке TypeScript. |
| 13 | +## Зависимости |
22 | 14 |
|
| 15 | +- Node.js >= v18 – среда исполнения на языке JavaScript/TypeScript |
| 16 | +- NPM – консольный менеджер пакетов для установки библиотек (идет в поставке с Node.js) |
| 17 | +- Vue.js – фреймворк для разработки фронтенда |
| 18 | +- Vite – консольный менеджер и инструмент сборки для удобства работы с Vue.js |
| 19 | +- Storybook – фреймворк для разраобтки и документации компонентов и экранов. |
23 | 20 |
|
24 | 21 | ## Разработка |
25 | 22 |
|
26 | 23 | Для удобства разработки в VS Code создан [workspace](../frontend.code-workspace) с преднастроенными |
27 | 24 | командами и рекомендованными расширениями для работы. |
28 | 25 |
|
| 26 | +### Начало работы |
| 27 | + |
29 | 28 | Перед началом работы нужно установить зависимости командой |
| 29 | + |
30 | 30 | ``` |
31 | 31 | pnpm install |
32 | 32 | ``` |
33 | 33 |
|
34 | | -Для локального запуска необходимо выполнить команду |
| 34 | +Если используешь VS Code, то следует настроить автоформатирование: |
| 35 | + |
| 36 | +1. Открыть файл с расширением `.vue`. |
| 37 | +2. Открыть палитру команд (Help > Show All Commands или `Ctrl+Shift+P`) |
| 38 | +3. Ввести и выбрать `Format document with`. |
| 39 | +4. Выбрать `Configure Default Formatter`. |
| 40 | +5. Выбрать `Prettier`. |
| 41 | + |
| 42 | +Теперь можно форматировать файлы с помощью `Shift+Alt+F`. Еще можно настроить автоформатирование при сохранении файла (File > Preferences > Settings, Format on save). |
| 43 | + |
| 44 | +### Работа со Storybook |
| 45 | + |
| 46 | +Для локального запуска Storybook необходимо выполнить команду |
| 47 | + |
35 | 48 | ``` |
36 | | -pnpm dev |
| 49 | +pnpm sb |
37 | 50 | ``` |
38 | 51 |
|
39 | | -Для локального запуска Storybook необходимо выполнить команду |
| 52 | +На localhost порте 6006 откроется storybook. Он поддерживает перезагрузку при изменении кода (hot module replacement), но иногда может что-то кешировать -- тогда лучше перезапустить. |
| 53 | + |
| 54 | +В левой вкладке будут перечислены все истории -- это могут быть компоненты, наборы компонентов или целые экраны. При нажатии на них можно посмотреть на то, как компонент выглядит, попробовать поменять какие-то его параметры и посмотреть, как он реагирует на события (например, нажатие). |
| 55 | + |
| 56 | +Создание компонента: |
| 57 | + |
| 58 | +1. В папке `/src/components/` создай папку с названием компонента (например, `button`). |
| 59 | +2. Создай в этой папке файл `Vu{НазваниеКомпонента}.vue` и в нем описываем шаблон компонента. |
| 60 | +3. Стилизуй компонент с помощью классов vuetify. |
| 61 | +4. Опиши модели и пропы, которые может принимать компонент. С помощью /\*\* \*/ опиши пропы и модели (так автоматически генерируется документация). |
| 62 | +5. В этой же папке создай `Vu{НазваниеКомпонента}.stories.ts`. |
| 63 | +6. В этом файле опиши meta, а потом истории -- различные состояния и опции компонента. Подробнее смотри в туториале Storybook или в уже написанных компонентах. |
| 64 | + |
| 65 | +### Пулл-реквест |
| 66 | + |
| 67 | +- Перед отправкой проверь стили: `pnpm check` |
| 68 | +- _Опционально_: более строгая проверка `pnpm check:hard`. |
| 69 | +- Заполни шаблон пулл-реквеста: что, как и зачем сделал |
| 70 | +- Запроси ревью |
| 71 | + |
| 72 | +### Запуск приложения (опционально) |
| 73 | + |
| 74 | +Для локального запуска приложения (чтобы проверять компоненты вне сторибука) необходимо выполнить команду |
| 75 | + |
40 | 76 | ``` |
41 | | -pnpm storybook |
| 77 | +pnpm dev |
42 | 78 | ``` |
43 | 79 |
|
44 | | - |
45 | 80 | ## Инструкции |
| 81 | + |
46 | 82 | ### Получение кода на свой компьютер |
47 | | -Для работы с данным примером необходимо забрать его к себе на ПК. Для этого нужно: |
48 | | -1. *(Опционально)* Если вы хотите далее опубликовать код на GitHub полезно сначала скопировать |
49 | | - репозиторий к себе кнопкой Fork на GitHub. Кнопка доступна в правом верхнем углу |
50 | | - [страницы репозитория](https://github.com/profcomff/app-template). |
51 | | -2. Создайте папку в удобном вам расположении. |
52 | | - - *Удобно создать папку на рабочем столе с названием вашего приложения.* |
53 | | -3. Откройте приложение "Командная строка" или "Терминал", в зависимости от операционной системы. |
54 | | -4. Прейдите в папку проекта командой `cd /путь/к/папке`. |
55 | | - - Если вы пользователь windows и создали на рабочем столе папку `my_app`, то команда будет |
56 | | - выглядеть так: `cd %userprofile%/Desktop/my_app` |
57 | | - - Если вы пользователь linux или MacOS и создали на рабочем столе папку `my_app`, то команда |
58 | | - будет выглядеть сделующим образом: `cd ~/Desktop/my_app` |
59 | | -5. Склонируйте код репозитория к себе на ПК командой |
60 | | - `git clone https://github.com/profcomff/app-template.git .` (точка в конце означает скачивание |
61 | | - кода в текущую папку). Если вы выполнили пункт 1 используйте в команде ссылку из зеленой кнопки |
62 | | - "Code" в правом верхнем углу вашего репозитория. |
63 | | -6. Откройте код в удобной среде разработки. Рекомендуем использовать VSCode, который можно открыть |
64 | | - из терминала командой `code .` |
65 | 83 |
|
66 | | -### Сборка и запуск приложения для публикации |
67 | | -Сборка исходного кода в один пакет производится с помощью Docker. В этом случае создается |
68 | | -независимый от операционной системы пакет, который можно без проблем разместить на любом сервере. |
| 84 | +1. Открой приложение "Командная строка" или "Терминал", в зависимости от операционной системы. |
| 85 | +2. Прейди в папку, где хочешь создать папку проекта, командой `cd /путь/к/папке`. |
| 86 | + - Если ты пользователь windows и хотите создать папку на рабочем столе, то команда будет |
| 87 | + выглядеть так: `cd %userprofile%/Desktop` |
| 88 | + - Если ты пользователь linux или MacOS и хочещб создать папку на рабочем столе, то команда |
| 89 | + будет выглядеть сделующим образом: `cd ~/Desktop/` |
| 90 | +3. Склонируй код репозитория к себе на ПК командой |
| 91 | + `git clone https://github.com/profcomff/ui-kit.git myapp` (вместо `myapp` подставь название папки, которая будет создана). |
| 92 | +4. Открой код в удобной среде разработки. Рекомендуем использовать VSCode, который можно открыть |
| 93 | + из терминала командой `code .` |
69 | 94 |
|
70 | | -Выполните команду `make` для сборки приложения. После окончания выполнения этой команды будет создан |
71 | | -новый Docker образ с названием `my_app`, который можно запустить командой `make run` |
| 95 | +### Сборка библиотеки |
72 | 96 |
|
| 97 | +TODO: Здесь будет описание сборки и публикации библиотеки на npm. |
73 | 98 |
|
74 | 99 | ### Автосборка |
| 100 | + |
| 101 | +TODO: Настроить на релиз. |
| 102 | + |
75 | 103 | Коммит в main запускает автоматическую сборку проекта средствами GitHub Actions. Настройки автосборки находятся в |
76 | 104 | файле [.github/workflows/build_and_publish.yml](.github/workflows/build_and_publish.yml). |
77 | 105 |
|
78 | 106 | ### Тесты на Pull Request |
| 107 | + |
79 | 108 | При создании запроса на слияние, автоматически создаются проверки кода юниттестами и на стили. |
80 | 109 | Следующие тесты будут запущены: |
| 110 | + |
81 | 111 | - Проверки стилей `eslint`, `prettier`, `stylelint` на код в папке `frontend` |
82 | 112 |
|
83 | 113 | Настройки автотестов находятся в файле[.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