Инструменты¶
Вот несколько отличных инструментов, которые я рекомендую вам использовать или, по крайней мере, попробовать в своих проектах TypeScript.
Prettier¶
Prettier - отличный инструмент от Facebook, который настолько упрощает форматирование кода, что о нем стоит упомянуть. Настроить его для TypeScript с использованием рекомендованной нами настройки проекта (все в папке src
) очень просто:
Установка¶
npm install prettier -D
- Добавьте
scripts
вpackage.json
:
1 2 3 |
|
Использование¶
На вашем CI-сервере:
npm run prettier:check
Во время разработки (или используя в хуке перед коммитом):
npm run prettier:write
Husky¶
Husky может предотвратить плохие коммиты, отправки плохих изменений в удаленный репозиторий и многое другое 🐶!
Если вы хотите запустить какой-то код JavaScript / TypeScript до того, как произойдет коммит, для этого вам подойдет husky.
Например, вы можете использовать husky, чтобы убедиться, что файлы форматируются с помощью prettier автоматически, поэтому вам больше не нужно беспокоиться о ручном форматировании файлов и вместо этого сосредоточиться на цели кода. Вот настройка:
npm install husky -D
- Добавьте
scripts
вpackage.json
:
1 |
|
Всякий раз, когда вы коммитите код и есть какие-либо изменения форматирования, которые необходимо внести, вы получите их как измененный файл в журнале git. Теперь вы можете:
- Если вы уже отправили изменения в удаленный репозиторий, просто закоммитьте его с комментарием
pretty
. - Если вы еще не отправили изменения в удаленный репозиторий, исправьте последний коммит с помощью флага
--amend
.
ESLint¶
ESLint существовал для линтинга JavaScript, но теперь он также становится де-факто линтером для TypeScript, благодаря сотрудничеству между двумя командами.
Установка EsLint¶
Чтобы настроить ESLint для TypeScript, вам потребуются следующие пакеты:
1 |
|
ПОДСКАЗКА: eslint называет пакеты, содержащие правила для линтера - "plugin"
- eslint : Ядро eslint
- eslint-plugin-react : Для правил react, предоставленных eslint. Список поддерживаемых правил
- @typescript-eslint/parse : Чтобы позволить eslint понять ts / tsx файлы
- @typescript-eslint/eslint-plugin : Для правил TypeScript. Список поддерживаемых правил
Как видите, есть два пакета eslint (для использования с js или ts) и два пакета @typescript-eslint (для использования с ts). Так что издержки для TypeScript не так уж велики.
Конфиг¶
Создайте .eslintrc.js
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Запуск¶
В вашем package.json
добавьте в scripts
:
1 2 3 4 5 |
|
Теперь вы можете выполнить npm run lint
для проверки.
Настройка VSCode¶
- Установите расширение
- Добавьте в
settings.json
:
1 2 3 4 5 6 |
|
История изменений¶
Читать markdown файл с прогрессом в проекте легче, чем читать журнал коммитов.
Автоматическая генерация истории изменений из сообщений коммитов - довольно распространенная практика в настоящее время. Существует проект под названием conventional-changelog, который генерирует журнал изменений из сообщений коммитов, которые следуют соглашению.
Соглашение об именах коммитов¶
Наиболее распространенное соглашение - это соглашение angular, которое подробно описано здесь.
Настройка¶
- Установите:
1 |
|
- Добавьте
script
в вашpackage.json
:
1 2 3 4 5 |
|
- Необязательно: чтобы автоматически отправить в удаленный репозиторий новые git commit и tag плюс опубликовать в npm, добавьте скрипт
postrelease
:
1 2 3 4 5 6 |
|
Релизы¶
Просто запустите:
1 |
|
На основе имён коммитов major
| minor
| patch
вид релиза определяется автоматически. Чтобы явно указать вид, вы можете указать --release-as
, например:
1 |
|