EsLint process
Навіщо
- Порядок в коді (проект має єдиний стиль)
- Прибираємо треш
- Ми імпортуємо те що дійсно
існує, інакше помилка - Код рев'ю робити простіше
та швидше


???

indent & max-len
Формування правил
Правила формуються на таких обмеженнях
- не дозволяють зробити помилку
- швидкість розробки
- підтримка IDE (jetbrains)
Який процес
Linter - для PreCommit хука
LinterLite - для GitLab Pipeline
якщо merge `commit --no-verify`
Що потрібно зробити
- Взяти за основу налаштування https://gitlab.com/social-tech/mobile/blob/vb-100-linter/.eslintrc.js (не закінчено)
- Запустити лінтер, переглянути правила, виписати свої коментарі
- Змерджити всі коментарії у форматі правило: коменти
- Зібратись знову і обговорити
- Повторити все знову доки не дійдемо консенсусу
- Інтегруємо
не всі правила повинні бути у всіх репах!
Щоб закінчити процес потрібні відповідальні
Кожен контролить репи та шукає підходящий момент залити всі лінт фікси
Катя
TrustTech Mobile

Денис
MarketingAdmin
UserWebInterface PrimeDate
Юра
Артем&Оля
Landing
RegForm
Landing-Web
Ілля
Рев'ю сайти
Правила просто так не вимикаються

Повинні бути аргументи за/проти ну або
Підтримка
- Правила оновлювати проблемно
- Потрібно оновлювати пакети, а їх купа
- Багато дублюючих конфігів
- eslint конфіги (до того ж поки два +lite версія)
- tsconfig
- webpack-type-checker.config
- fix-vendor.js (для типізації Vuex та компонентів)
- ... (через слайд)
Packages
- @vue/cli-plugin-eslint
- @vue/eslint-config-airbnb
- @vue/eslint-config-typescript
- eslint-plugin-vue
- eslint-plugin-import
- eslint-import-resolver-alias
- eslint-plugin-graphql
- eslint-plugin-jsx-a11y
- @typescript-eslint/eslint-plugin
- stylelint
- stylelint-order
- stylelint-scss
Ideas
- eslint конфіги
- tsconfig.json
- webpack-type-checker.config
- свої es-lint плагіни
- свої конфіги
- Перевірка використання імені дзеркала в js коді (object key/string/array) (за можливості template та css)
- Якщо в темплейті svg містить більше двох елементів (без vue атрибутів) викидувати помилки про заміну його на вставку як компонент
- Правило перевірки шляхів імпортів файлів (відповідно до документації яку потрібно скласти=))
- Правило яке блокує використання v-html та показує що потрібно використовувати v-dompurify (використати можливості правила vue/v-html, або написати своє)
- Замість підключення скрипта у vue файлі використовувати extends
- Блокувати комміт package-lock.json якщо нічого не змінилось у версіях залежностей package.json
- Блокувати комміт при оновленні версій
- node-sass > 4.10 (на днях вийшла 4.13 перевірити)
- ts-jest > 23.0.0
- vue-js-modal > 1.3.28
- Landing: шукати назви лендінга та блокувати комміт
(можливо рішення і для продукта в майбутньому)
- В html&css перевіряти url з картинками та самі файли, якщо вони не стиснуті, завантажувати стиснуту версію на наш CDN, блокувати коміт та писати який лінк на який замінити (+зробити автоматизований загрузчик)
Команди
розробка ядра
інтеграція рішень
пропрацювання рішень
EsLint process
By Kolya Koval
EsLint process
- 350