@vv0rkz/js-template 1.6.4 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,150 +1,224 @@
1
- # @vv0rkz/js-template
2
-
3
- Переиспользуемый шаблон для JS проектов с husky, changelog, GitHub tools
4
-
5
- ## 🚀 Установка
6
-
7
- npm install -D @vv0rkz/js-template
8
- npx jst init
9
-
10
- ## 💻 Использование
11
-
12
- ```bash
13
- # Короткая команда (рекомендуется)
14
-
15
- npm run _ tasks
16
- npm run _ release
17
- npm run _ create-task "Новая фича"
18
-
19
- # Или полная
20
- npm run jst tasks
21
- npm run jst release
22
- ```
23
-
24
- ## 📋 Команды
25
-
26
- ### Управление проектом
27
-
28
- - `jst init` — инициализация проекта
29
-
30
- ### Разработка
31
-
32
- - `jst changelog` — создать changelog
33
- - `jst release` — полный релиз (проверка + changelog + README)
34
- - `jst update-readme` — обновить README
35
- - `jst push-release` — запушить релиз в main
36
-
37
- ### Управление задачами
38
-
39
- - `jst tasks` — список открытых задач
40
- - `jst create-task [название]` — создать задачу
41
- - `jst bugs` список открытых багов
42
- - `jst create-bug [название]` создать баг
43
- - `jst all-issues` — все открытые issues
44
-
45
- ## 📦 Что устанавливается
46
-
47
- - ✅ Husky + хуки (commit-msg, pre-push, post-commit)
48
- - Commitlint конфиг (проверка коммитов)
49
- - Changelogen конфиг (автогенерация changelog)
50
- - GitHub tools скрипты (управление задачами)
51
- - ✅ .gitignore (готовый файл)
52
-
53
- ## 🎯 Пример использования
54
-
55
- ### Установка в новый проект
56
-
57
- ```bash
58
- mkdir my-awesome-js-project
59
- cd my-awesome-js-project
60
- npm init -y
61
- npm install -D @vv0rkz/js-template
62
- npx jst init
63
- ```
64
-
65
- ### Работа с задачами
66
-
67
- ```bash
68
- Создать задачу
69
- npm run _ create-task "Добавить темную тему"
70
-
71
- Посмотреть все задачи
72
- npm run _ tasks
73
-
74
- Создать баг
75
- npm run _ create-bug "Кнопка не работает"
76
-
77
- Посмотреть баги
78
- npm run _ bugs
79
- ```
80
-
81
- ### Релиз версии
82
-
83
- ```
84
- Сделать фичу
85
- git add .
86
- git commit -m "feat: добавлена темная тема"
87
-
88
- Создать релиз
89
- npm run _ release
90
-
91
- Запушить в main
92
- npm run _ push-release
93
- ```
94
-
95
- ## 📁 Структура проекта после установки
96
-
97
- ```
98
- my-project/
99
- ├── .husky/
100
- ├── commit-msg # Проверка формата коммитов
101
- │ ├── pre-push # Запуск тестов перед push
102
- └── post-commit # Сообщение после коммита
103
- ├── tools-gh/ # GitHub утилиты
104
- ├── create-task.js
105
- ├── create-bug.js
106
- │ ├── update-readme.js
107
- └── ...
108
- ├── .gitignore # Готовый .gitignore
109
- ├── changelog.config.js # Конфиг для changelog
110
- ├── commitlint.config.js # Правила для коммитов
111
- └── package.json # С готовыми скриптами
112
- ```
113
-
114
- ## 🛠️ Технологии
115
-
116
- - [Husky](https://typicode.github.io/husky/) Git hooks
117
- - [Commitlint](https://commitlint.js.org/) Проверка коммитов
118
- - [Changelogen](https://github.com/unjs/changelogen) Генерация changelog
119
- - [GitHub CLI](https://cli.github.com/) Управление issues
120
-
121
- ## 📝 Формат коммитов
122
-
123
- feat: новая функция
124
- fix: исправление бага
125
- docs: изменения в документации
126
- refactor: рефакторинг кода
127
- perf: улучшение производительности
128
- test: добавление тестов
129
- chore: обновление зависимостей
130
-
131
- ## 📄 Лицензия
132
-
133
- MIT © [vv0rkz](https://github.com/vv0rkz)
134
-
135
- ```bash
136
- # 🚀 Публикация
137
- cd js-template
138
- npm login
139
- npm publish --access public
140
- # 💻 Использование в проекте
141
-
142
- # В новом проекте
143
- npm install -D @vv0rkz/js-template
144
- npx jst init
145
-
146
- # Работа через короткую команду _
147
- npm run _ tasks
148
- npm run _ release
149
- npm run _ create-task "Моя задача"
150
- ```
1
+ # @vv0rkz/js-template
2
+
3
+ Переиспользуемый шаблон для JS проектов с husky, changelog, GitHub tools и конфигурируемым workflow.
4
+
5
+ ## Установка (новый проект)
6
+
7
+ ```bash
8
+ npm install -D @vv0rkz/js-template
9
+ npx jst init
10
+ ```
11
+
12
+ `init` создаст все конфиги, хуки, labels и настроит проект.
13
+
14
+ ## Обновление (существующий проект)
15
+
16
+ ```bash
17
+ npm update @vv0rkz/js-template
18
+ npx jst upgrade
19
+ ```
20
+
21
+ `upgrade` обновит хуки, конфиги commitlint/changelog, и создаст `jst.config.js` если его ещё нет.
22
+
23
+ ## Конфигурация
24
+
25
+ Все настройки в одном файле — `jst.config.js` в корне проекта.
26
+
27
+ ```js
28
+ export default {
29
+ // Формат веток (шаблоны, не regex)
30
+ branch: {
31
+ main: 'main',
32
+ patterns: [
33
+ 'v{version}-{name}', // v2.3.0-dark-theme
34
+ // 'feature/#{issue}-{name}', // feature/#12-dark-theme
35
+ // 'release/v{version}', // release/v2.3.0
36
+ ],
37
+ },
38
+
39
+ // GitHub labels
40
+ labels: [
41
+ { name: 'task', color: '0E8A16', description: 'Новая фича', emoji: '✨' },
42
+ { name: 'bug', color: 'D73A4A', description: 'Баг', emoji: '🐛' },
43
+ // добавь свои...
44
+ ],
45
+
46
+ // Правила коммитов
47
+ commits: {
48
+ types: ['feat', 'fix', 'refactor', 'build', 'chore', 'docs', 'perf'],
49
+ requireIssue: ['feat', 'fix'], // эти типы требуют #номер
50
+ closeKeyword: 'close', // слово для закрытия issue
51
+ },
52
+
53
+ // Релиз
54
+ release: {
55
+ requireDemo: true, // требовать GIF/PNG перед релизом
56
+ demoDir: 'docs', // где искать демо
57
+ demoFormats: ['gif', 'png'],
58
+ },
59
+
60
+ // Автообновление зависимостей
61
+ depUpdater: false, // 'dependabot' | 'renovate' | false
62
+
63
+ // Репозиторий JST для report-issue
64
+ jstRepo: 'vv0rkz/js-template',
65
+ }
66
+ ```
67
+
68
+ ### Что автоматическое, а что нужно применить вручную
69
+
70
+ | Что изменил | Когда вступит в силу |
71
+ |---|---|
72
+ | `branch.pattern` | На следующем `git push` |
73
+ | `commits.*` | На следующем `git commit` |
74
+ | `release.*` | На следующем `jst release` |
75
+ | `labels` | После `jst setup-labels` или `jst apply` |
76
+ | `depUpdater` | После `jst setup-deps` или `jst apply` |
77
+
78
+ Короткий путь `jst apply` применит labels + deps за раз.
79
+
80
+ ## Команды
81
+
82
+ ```bash
83
+ npm run _ <команда> # короткая форма
84
+ npm run jst <команда> # полная форма
85
+ npx jst <команда> # напрямую
86
+ ```
87
+
88
+ ### Проект
89
+
90
+ | Команда | Описание |
91
+ |---|---|
92
+ | `init` | Инициализация нового проекта |
93
+ | `upgrade` | Обновить конфиги после `npm update` |
94
+ | `apply` | Применить изменения из `jst.config.js` |
95
+ | `setup-labels` | Настроить GitHub labels |
96
+ | `setup-deps` | Настроить dependabot/renovate |
97
+
98
+ ### Разработка
99
+
100
+ | Команда | Описание |
101
+ |---|---|
102
+ | `release` | Полный релиз (changelog + README) |
103
+ | `push-release` | Создать PR и смерджить в main |
104
+ | `changelog` | Создать changelog |
105
+ | `update-readme` | Обновить README с версией |
106
+
107
+ ### Issues (текущий проект)
108
+
109
+ | Команда | Описание |
110
+ |---|---|
111
+ | `tasks` | Список задач |
112
+ | `create-task [название]` | Создать задачу |
113
+ | `bugs` | Список багов |
114
+ | `create-bug [название]` | Создать баг |
115
+ | `refactors` | Список рефакторингов |
116
+ | `create-refactor [название]` | Создать рефакторинг |
117
+ | `perfs` | Список оптимизаций |
118
+ | `create-perf [название]` | Создать оптимизацию |
119
+ | `all-issues` | Все открытые issues |
120
+ | `report-issue [описание]` | Сообщить о проблеме в JST |
121
+
122
+ ### Pull Requests
123
+
124
+ | Команда | Описание |
125
+ |---|---|
126
+ | `pr-list` | Показать все PR |
127
+ | `pr-view <n>` | Посмотреть PR в терминале |
128
+ | `pr-view-web <n>` | Открыть PR в браузере |
129
+ | `pr-merge <n>` | Смерджить PR |
130
+ | `pr-close <n>` | Закрыть PR без merge |
131
+
132
+ ## Формат коммитов
133
+
134
+ ```bash
135
+ feat: #9 добавить тёмную тему # фича, ссылка на issue
136
+ feat(Date): #9 добавить форматирование # фича со scope
137
+ feat: close #9 добавить тёмную тему # фича + закрыть issue
138
+ feat(parser): close #9 финализировать # scope + закрыть issue
139
+ fix: #10 исправить валидацию # фикс, ссылка на issue
140
+ fix(auth): close #10 исправить валидацию # фикс + scope + закрыть
141
+ refactor: оптимизировать алгоритм # без issue
142
+ refactor(utils): оптимизировать хелперы # без issue, со scope
143
+ docs: обновить README # без issue
144
+ chore(release): v1.2.0 # авто-релиз
145
+ ```
146
+
147
+ ### Когда issue закрывается
148
+
149
+ По умолчанию `feat: #9 ...` и `fix: #9 ...` **не закрывают** issue — только ссылаются. Чтобы закрыть, добавь ключевое слово `close` перед номером:
150
+
151
+ ```bash
152
+ # Несколько коммитов по одной задаче
153
+ git commit -m "feat: #9 добавить компонент кнопки"
154
+ git commit -m "feat: #9 добавить стили кнопки"
155
+ git commit -m "feat: close #9 финализировать кнопку" # ← закроет issue
156
+ ```
157
+
158
+ Ключевое слово настраивается через `commits.closeKeyword` в конфиге.
159
+
160
+ ## Формат веток
161
+
162
+ Ветки задаются шаблонами, без regex. Доступные плейсхолдеры:
163
+
164
+ | Плейсхолдер | Что матчит | Пример |
165
+ |---|---|---|
166
+ | `{version}` | Семвер X.Y.Z | `2.3.0` |
167
+ | `{issue}` | Номер issue | `12` |
168
+ | `{name}` | Описание (буквы, цифры, `-`, `_`) | `dark-theme` |
169
+ | `*` | Что угодно | `anything/here` |
170
+
171
+ ```js
172
+ // Классический стиль
173
+ patterns: ['v{version}-{name}']
174
+ // ✅ v2.3.0-normalize-operators
175
+
176
+ // GitHub Flow стиль
177
+ patterns: ['feature/#{issue}-{name}', 'fix/#{issue}-{name}', 'release/v{version}']
178
+ // ✅ feature/#12-dark-theme
179
+ // ✅ fix/#7-validation-bug
180
+ // ✅ release/v2.3.0
181
+
182
+ // Без ограничений
183
+ patterns: ['*']
184
+ ```
185
+
186
+ ## Типичный workflow
187
+
188
+ ```bash
189
+ # 1. Создать задачу
190
+ npm run _ create-task "Добавить тёмную тему" # → issue #12
191
+
192
+ # 2. Создать ветку
193
+ git checkout -b v1.3.0-dark-theme
194
+
195
+ # 3. Работать и коммитить
196
+ git commit -m "feat: #12 добавить переключатель темы"
197
+ git commit -m "feat: #12 добавить CSS переменные"
198
+ git commit -m "feat: close #12 финальные стили" # закрыть issue
199
+
200
+ # 4. Релиз
201
+ npm run _ release
202
+ npm run _ push-release
203
+ ```
204
+
205
+ ## Что устанавливается при init
206
+
207
+ - `jst.config.js` — единый конфиг проекта
208
+ - `.husky/` — хуки (commit-msg, pre-push, post-commit)
209
+ - `commitlint.config.js` — проверка коммитов (читает из jst.config.js)
210
+ - `changelog.config.js` — генерация changelog (читает из jst.config.js)
211
+ - `.gitignore`
212
+ - GitHub labels (если установлен `gh`)
213
+ - dependabot/renovate (если включён в конфиге)
214
+
215
+ ## Технологии
216
+
217
+ - [Husky](https://typicode.github.io/husky/) — Git hooks
218
+ - [Commitlint](https://commitlint.js.org/) — Проверка коммитов
219
+ - [Changelogen](https://github.com/unjs/changelogen) — Генерация changelog
220
+ - [GitHub CLI](https://cli.github.com/) — Управление issues
221
+
222
+ ## Лицензия
223
+
224
+ MIT © [vv0rkz](https://github.com/vv0rkz)