Совместная работа Prettier и ESLint для качественной разработки

  Переглядів 26,130

Михаил Непомнящий

Михаил Непомнящий

6 місяців тому

Разбираемся как настроить совместное использование ESLint и Prettier для подсветки синтаксиса и форматирования кода в Visual Studio Code. Также смотрим как настроить сам редактор на автоматическое форматирование и исправление ошибок код-стайла при сохранении.
Мои курсы по вебу с купонами:
✅ mishanep.com/
📢 Поддержка канала:
/ mishanep
www.tinkoff.ru/rm/nepomnyasch...
paypal.me/mishanep

КОМЕНТАРІ: 100
@ShoxaKardashian
@ShoxaKardashian 6 місяців тому
О Боже! Наконец есть видео где объяснили по хронологической цепочке как правильно настраивать Prettier и ESlint. Спасибо большое!
@vladislavgorovenko
@vladislavgorovenko 2 дні тому
Крутое видео, как всегда, спасибо. Вот подумал, что было бы еще круче, если бы вы в реальном времени показывали, где находите эту информацию, те как смотрите документацию и проч. Думаю, что этого не хватает в туториалах на ютубе.
@Taiga_libertarian
@Taiga_libertarian 6 місяців тому
Привет, Михаил, рада новому видео. Наконец таки появилось свежее видео по линтерам ))
@user-xt6kb7mj2t
@user-xt6kb7mj2t Місяць тому
Ааооаоао, как же стало хорошо, мучилась, мучилась, теперь все работает как мне нужно, спасибо тебе огромное!!! Спас мои нервы
@TheKykp
@TheKykp 6 місяців тому
Лайк заранее, пока не смотрел, но знаю точно, все что рассказывает Михаил это то, что нужно знать каждому уважающему себя разработчику.
@hibiride
@hibiride 6 місяців тому
БРО! ты меня спас! третий день битв за мир между притером и линтом. тонны доки и нулевой результат. Респект! Соглашусь с предыдущим комментатором на тему использования конфига эйрбнб. Было бы круто посмотреть. Лайк, подписка!
@dmtrack
@dmtrack 6 місяців тому
Благодарю! Круто, как всегда
@user-ec1vt8kq9v
@user-ec1vt8kq9v 6 місяців тому
Вау, только я подумал о такой теме и Михаил уже тут как тут как всегда с классным видео )
@caH40yc
@caH40yc 6 місяців тому
Отлично! Новый ролик, надо идти за чаем с плюшками ))
@pavelpryce
@pavelpryce 6 місяців тому
Михаил привет, пол года назад разбирался с ESLint, не нашёл не чего полезного в рунете, пришлось идти на бурж сайты. Всё настроил, но осталось не понимание. Сегодня нужно было настроить всё заново, решил посмотрю что нового вышло, и тут твоё видео, очень подробное и понятное. Жаль его не было раньше, я бы с экономил время и нервы. Большое спасибо!
@endlessmoonlightonmonday8985
@endlessmoonlightonmonday8985 2 місяці тому
это просто потрясающе.я неделю никак не могла понять почему мои настройки prettier не срабатывают. это видео просто кладезь! спасибо!
@vadim_romanov
@vadim_romanov 6 місяців тому
очень полезное видео , настроил prettier еще с прохождения вашего курса по react, очень удобно
@andreynee9182
@andreynee9182 3 місяці тому
Михаил, огромное спасибо!
@hasannamazl7584
@hasannamazl7584 6 місяців тому
Спасибо за видео!
@user-qh2em5cb2i
@user-qh2em5cb2i 3 місяці тому
Спасибо вам большое!!!!
@Ksushapi
@Ksushapi 6 місяців тому
супер полезная вещь, спасибо!☺
@user-artem-busyhin
@user-artem-busyhin 6 місяців тому
Шикарно. Спасибо.
@ValentinProtasevich
@ValentinProtasevich 6 місяців тому
огромное спасибо, очень полезное видео!
@victormog
@victormog 6 місяців тому
Эх, Миша, где же ты раньше был?! 😉
@alexbr696
@alexbr696 6 місяців тому
Михаил, спасибо за отличный контент, но хотел бы увидеть реализацию airbnb в eslint. Как правильно настроить, какие плагины лучше добавлять. Это будет полезно особенно джуну он не будет пугаться когда в вакансии написано airbnb и будет знать хотя бы на базовом уровне что это такое.
@mishanep
@mishanep 6 місяців тому
У меня есть видео по eslint, там что-то было про подключение внешних конфигов, если не ошибаюсь. Но чтобы не пугаться чужих стайл гайдов, их нужно сидеть и изучать. У них есть документации с тем как по их мнению правильно.
@__kawaii
@__kawaii 2 місяці тому
Мое любимое видео в интернете
@IgorWolf
@IgorWolf 6 місяців тому
Спасибо за видео, очень полезно! Посмотрел, полез в eslint конфиг проекта, который пилится уже давно, и обнаружил там две лишние запятые из-за которых конфиг походу вообще не работал. Код сразу заиграл красками, где желтеньким, а где и красненьким ))
@mishanep
@mishanep 6 місяців тому
У меня так тоже было на одном из первых проектов)))
@cmac2cmac
@cmac2cmac 6 місяців тому
Спасибо!
@rustamakhmetyanov4404
@rustamakhmetyanov4404 6 місяців тому
Спасибо за видео, но надо было ts использовать, потому что там тоже есть нюансы))
@Ksushapi
@Ksushapi 6 місяців тому
да кстати, параллельно с ведио настраивала eslint для одного ts проекта, и некоторые вопросы остались
@govorov_top
@govorov_top 6 місяців тому
Спасибо!)
@barmaley9705
@barmaley9705 6 місяців тому
четка контент в кайф
@sohibabduvaliyev151
@sohibabduvaliyev151 2 місяці тому
хороший контент
@antonmas3451
@antonmas3451 6 місяців тому
супер! prettier и linter конфликтуют часто, особенно если зависимости ставить всякие, короче если будет продолжение этой темы, я уверен это всем зайдет на ура)!!
@alexandrsashin
@alexandrsashin 6 місяців тому
Для решения конфликтов prettier и eslint используют eslint-config-prettier и eslint-plugin-prettier. Тут и добавить нечего.
@alenache1
@alenache1 6 місяців тому
🔥🔥🔥🔥🔥
@engelknight2059
@engelknight2059 6 місяців тому
Спасибо
@awesomedud
@awesomedud 6 місяців тому
спасибо
@sivtsev
@sivtsev 6 місяців тому
Класс!!!!
@yanballas3055
@yanballas3055 3 місяці тому
Михаил, подскажите пожалуйста, плагин gulp prettier не работает с автоматическом фиксом при исправлениях. Возможно что-то не хватает для работы?
@rustamakhmetyanov4404
@rustamakhmetyanov4404 6 місяців тому
На днях решил добавить больше конфигов в eslint, в итоге пол дня сидел весь код перекапывал😄
@CJIu3eHb
@CJIu3eHb 6 місяців тому
Вообще, наверное, будет лучше настраивать не User конфиг, а конфиг для проекта (Workspace), если там какие-то особенные требования (делать папку .vscode в корне, тащить или нет в гит - решать с коллегами). Какие-то совсем общие можно и вынести в User. А то в одном проекте нужен автоформат, в другом нет, в третьем опять нужен, но только измененного кода и т.д.
@user-sv1cw9sc2h
@user-sv1cw9sc2h 6 місяців тому
годно
@FoldyH3ro
@FoldyH3ro 6 місяців тому
Честно говоря никогда не понимал, зачем нужен Prettier, если линтер отлично покрывает функции форматирования. Плюс eslint куда более гибок.
@victormog
@victormog 6 місяців тому
По определению у линтера и форматера - разные задачи. То, что разрабы всунули в ESLint *некоторые* функции форматирования, не позволит решить *все* необходимые пожелания по формату кода Большинству джунов достаточно и встроенных средств в VS Code, но в серьёзной компании могут (и должны) быть четкие, строгие и, главное, единообразные требования к форматированию.
@FoldyH3ro
@FoldyH3ro 6 місяців тому
@@victormog Быть может. Можете привести кейс форматирования Prettier, который eslint не покрывает? Просто я за время работы такого не встречал.
@CJIu3eHb
@CJIu3eHb 6 місяців тому
Честно говоря, тоже. Но, есть нюансы. Встречались моменты, которые eslint не осиливал. Хотя и с претиером тоже встречались, но реже. С другой стороны, в обоих случаях - это редкость, и можно на этом не заморачиваться. В претиере бесит то, что нельзя две пустых строки поставить. В гите висело предложение добавить такую возможность, но просители были посланы. В общем, если при разворачивании проекта претиер есть, то и ладно, а если нет - то обязательного порыва его устанавливать нет, разве что бывает нужда форматировать что-то отличное от js/ts - json, html, стили и прочее. Грубо говоря, не являюсь фанатом претиера. Т.е. использовать ли претиер, использовать раздельно или совместно с линтером - дело настроения или необходимости.
@404Negative
@404Negative 16 днів тому
@@CJIu3eHb то что нельзя 2 пустых строки подряд - реально кумарит. но это прям единственное что кумарит в преттиере
@user-rv1bx8hx4v
@user-rv1bx8hx4v 2 місяці тому
👍👍
@mr_adw
@mr_adw 6 місяців тому
Спасибо за видео, интересно было бы глянуть настройку с Next, tailwind, airbnb, бо все вместе это просто танцы с бубном в руках не опытного пользователя :)
@halynapopusk1514
@halynapopusk1514 2 місяці тому
Спасибо за видео! А если на TS пишешь, то нужно что то доставлять?
@mishanep
@mishanep 2 місяці тому
Настройки eslint для typescript дополнительные потребуются.
@repetonline8065
@repetonline8065 14 днів тому
Подскажи, пожалуйста, если сборщик webpack, настроенный под react+ts, то при установке eslint нужно выбрать просто ts? Или гораздо больше манипуляций надо будет?
@mishanep
@mishanep 13 днів тому
Для TS есть свои плагины с рекомендованными настройками (@typescript-eslint/recommended), плюс парсер нужно соответствующий выбрать @typescript-eslint/parser
@ProEvv
@ProEvv 4 місяці тому
Спасибо за видео ) но есть вопрос... зачем нужен prettier если я могу написать в настройках так editor.defaultFormatter: dbaeumer.vscode-eslint ? И тогда у меня не будет конфликтов двух конфигов (не нужно будет подгонять их по друг друга) Вообще я ни как не мог подружить с prettier, space-before-function-paren: [error, always] и просто забил на него...
@dmitry8994
@dmitry8994 6 місяців тому
Добрый день. Что все таки нужно выбирать в параметре окончания строк endOfLine? При условии что работаешь в windows?
@mishanep
@mishanep 6 місяців тому
Для личного проекта разницы не будет. А при работе в команде надо выбирать lf, чтобы потом не было конфликтов с коллегами, использующими linux или macos.
@sharkman6434
@sharkman6434 6 місяців тому
Спасибо за видео ! Михаил в 2023 году видеть файлы .jsx уже наверное моветон может все таки начнёте пилить на тайпскрипте?
@mishanep
@mishanep 6 місяців тому
Приветствую. У меня на канале немало видео с TypeScript. Отвечу так: универсального варианта для видео не существуют, всегда кто-то не доволен, что видео на TS, равно как и если оно на JS.
@sharkman6434
@sharkman6434 6 місяців тому
​@@mishanepого )) даже и не подумал о таком сценарии, Михаил огромная просьба, если будет у вас время и желание может быть снимите материал про tanstack tables, особенно интересно про виртуализацию и вложенные таблицы ) , дай бог здоровья и развития вашему шикарному каналу )
@yanagaeify
@yanagaeify 6 місяців тому
Спасибо за видео) У меня вопрос, возможно ты знаешь как это пофиксить. У меня стоит ESlint и prettier, а к prettier подключен плагин от tailwind на сортировку классов. Проблема в том, что мне не нравиться как работает форматирование prettier, я бы с удовольствием отключил бы его, но тогда перестанет работать плагин на сортировку классов. Есть мысли\идеи как можно оставить работу tailwind плагина, но отключить весь остальной функционал prettier?
@mishanep
@mishanep 6 місяців тому
Я не работаю с Tailwind, но в теории наверняка есть eslint правило (или плагин) который умеет фиксить подобные штуки. Либо просто плагин для IDE.
@yanagaeify
@yanagaeify 6 місяців тому
@@mishanep Большое спасибо за ответ) я искал как это настроить, но что-то не справился, буду еще смотреть. А есть какая-то конкретная причина почему ты не юзаешь tailwind? Интересно узнать)
@San-sd3bz
@San-sd3bz 6 місяців тому
Здравствуйте Михаил, а как добавить внешние настройки готовые, например настройка от airbnb, у которой свои правила?
@mishanep
@mishanep 6 місяців тому
Для внешних настроек ставится dev зависимость и подключается в extends линтера.
@user-wm5xf6np4g
@user-wm5xf6np4g 7 днів тому
10:25 Подскажите, пожалуйста, что делать, если не появляется 3-й вариант ответа с "and enforce code style"
@user-ux4le1tf3y
@user-ux4le1tf3y Місяць тому
Привет, подскажите пожалуйста как сделать что бы каждый пропс не переносил на новую строку?
@ilyaprotsenko1023
@ilyaprotsenko1023 6 місяців тому
Добрый день. Скажите, пожалуйста, как часто для коммерции вы используете CRA темплейт? У нас же теперь есть Vite. Можно же развернуть темплейт с его помощью и настроить конфигурацию eslint и prettier соответственно. Заранее спасибо за ответ
@victormog
@victormog 6 місяців тому
Для коммерции используют то, что принято в компании, а не то, что "появилось позавчера, а вчера вышла уже новая версия"...
@ilyaprotsenko1023
@ilyaprotsenko1023 6 місяців тому
@@victormog приходилось ли стартовать с нуля коммерческие проекты? Если да, то чему отдавали преимущество: cra or vite? Я поднимал проекты на кра и на вит. На вит небольшие коммерческие проекты разрабатывал, чтобы избежать дальнейших потенциальных проблем. Большие/средние проекты в основном встречал на кра.
@victormog
@victormog 6 місяців тому
@@ilyaprotsenko1023 ... нет такого понятия *"я"* в серьёзных коммерческих проектах... Если же ты сам себе команда, то хоть руками настраивай webpack...
@ilyaprotsenko1023
@ilyaprotsenko1023 6 місяців тому
@@victormog верно, поэтому в последнем лексическом предложении моего предыдущего ответа нигде и не использовалось "я". Всего лишь хотел поинтересоваться конструктивным мнением по поводу тех инструментов, которым можно доверять и каким отдают предпочтение опытные разработчики. Меня интересует боевой опыт и качественное мнение. Если же у вас был опыт касательно моего вопроса, дайте знать в конструктивном формате, а отвечать, чтоб лишь бы ответить, не нужно, спасибо)
@mishanep
@mishanep 6 місяців тому
Мне на Vite пока проекты не попадались. Чаще это кастомный вебпак. Бывали случаи и с CRA, но сейчас он выглядит заброшенным и официальная дока Реакта про него уже не упоминает, предлагая сразу использовать фреймворки. В целом какой-то разнице в билдере нет, если мы говорим про форматирование и линтер. Стандартная настройка, когда мы хотим управлять правилами, будет приоритетнее дефолтных, если они шли из коробки, в том числе и во фремворке.
@sno-oze
@sno-oze 6 місяців тому
рекомендую обратить внимание на eslint-kit, если кому-то не хочется настраивать eslint, а хочется "из коробки"
@codebor
@codebor 6 місяців тому
А нужен ли нам вообще этот Prettier, если есть Eslint? Ведь все те же правила можно задать в Eslint'е и не держать два конфига и несколько библиотек для их связки!?
@UnRealbl4
@UnRealbl4 6 місяців тому
В новых версиях eslint хотят выпилить форматирование
@MrPandaSmith
@MrPandaSmith 6 місяців тому
Да, правила форматирования в eslint уже deprecated. Но к счастью есть их версия, которая теперь будет поддерживаться сообществом.
@user-mu2lr9zc7d
@user-mu2lr9zc7d 6 місяців тому
Спасибо за видео с полезными штуками 👍 Есть одна проблема, ни как не могу отключить длину строк, чтобы было просто форматирование текста, а где и когда переносить строки я сам хочу решать. Если убираю "printWidth", то используется значение по умолчанию, если задать какое-то значение, то там где нужно раньше перенести строку, для удобочитаемости, студия их опять склеивает.... и это какой-то ад... в обычной Visual Studio с этим нет проблем, а Code просто бесит со своими переносами.
@mishanep
@mishanep 6 місяців тому
Это prettier переносит. У VS Code по дефолту при форматировании переносы не регулируются, насколько помню. Я тоже не смог победить, а потом перестал об этом думать.
@ncux199rus
@ncux199rus 5 днів тому
Сделай видео для flat конфигурации.
@mishanep
@mishanep 5 днів тому
Как раз подумываю.
@NeoCoding
@NeoCoding 6 місяців тому
да эт полезно, но у меня вроде все работает просто после установки только eslint & prettier без плагинов
@stilljunior1764
@stilljunior1764 16 днів тому
почему создается файл eslint.config.mjs?
@mishanep
@mishanep 16 днів тому
Зависит от настроек проекта. По умолчанию js файлы для ноды определяются как common js модули и расширение mjs говорит, что это es6 модуль с другим синтаксисом импортов и экспортов. Если в package.json есть настройка type: module, то расширение у файлы будет js, а для common js модулей - .cjs :) Словом, если путает, конфиг можно в формате json создать.
@stilljunior1764
@stilljunior1764 16 днів тому
@@mishanep, спасибо большое за ответ
@Soap9613
@Soap9613 6 місяців тому
3:39 вы показываете перенос строки при деструктуризации, но при сохранении этот перенос удаляется. у меня такая же беда при количестве свойства деструктуризации равное 4, то переноса строки нет ``` const { className, children, theme = ButtonTheme.OUTLINE, square } = props; ``` а если свойств 5=< то перенос присутствует. какое правило eslint'а + prettier отвечает за перенос строки в данном случае. в моём проекте eslint+prettier переносит строки при кол-ве свойств объекта: ``` const { className, children, theme = ButtonTheme.OUTLINE, square, size = ButtonSize.M, disabled, ...otherProps } = props; ``` копал в сторону "object-curly-newline", но это свойство переносит строку внутри фигурных скобок т.е. вот так: ``` const { a, b, c, n, m, e, w, q } = exmpl; ``` помогите, пожалуйста, разобраться с этим, потому что я бы хотел делать перенос строки при кол-ве свойств 3 и более
@mishanep
@mishanep 6 місяців тому
По идее Prettier не заморачивается по количеству деструктурируемых элементов. Там просто по длине строке идет перенос. Эта длина настраивается. Я как-то тоже ковырялся как более гибко настроить переносы, но так и не нашел, в итоге бросил это дело. Если найдете - поделитесь.
@Soap9613
@Soap9613 6 місяців тому
@@mishanep благодарю) так и думал что это связано из-за длины строки) хотя очень жаль, что нет такого правила
@diggerdog001
@diggerdog001 5 місяців тому
eslint-plugin-prettier не совсем рекомендуется, даже в самой доке пишется что у него достаточно недостатков. Лучше юзать просто eslint-config-prettier
@iGotton
@iGotton 6 місяців тому
+
@404Negative
@404Negative 16 днів тому
так, ну если и после этого видео тупой если нт не установится, то больше никогда не буду пытатся его настраивать (терять время в пустую)
@insafsuz8864
@insafsuz8864 6 місяців тому
бедный enter твоего ноутбука
@user-rv4kz3yw5t
@user-rv4kz3yw5t 3 місяці тому
Eslint решили отказаться от форматирования кода
@404Negative
@404Negative 16 днів тому
не устанавливается eslint. пишет ошибки, связанные с тем, что создатели eslint поменяли формат конфига. и теперь НИЧЕГО не работает и не устанавливается. но создатели eslint об этом почему то не подумали. и та установка что у них в документации - просто не работает и не устанавливает. уже 2й раз пытаюсь установить этот тупой eslint. потратил целый день. и установить так и не получилось. вообще не понятно как такой говнософт пользуется такой огромной популярностью
@alexeyfilippov42
@alexeyfilippov42 5 місяців тому
хм странно только что создал новой проект на vite код в код но с предстановой ts повторил у меня не работает prettier
@kumb61
@kumb61 6 місяців тому
А зачем нужен pretter если все это и в eslint можно настроить?
@user-mb7kp1bl4w
@user-mb7kp1bl4w 6 місяців тому
eslint не умеет в грамотные переносы текста на новую строку
@kumb61
@kumb61 6 місяців тому
@@user-mb7kp1bl4w Примеры свойств есть, или мне на слова поверить? У меня все отлично работает с единым eslint, а pretter только добавляет конфликтов и мусора в проекте.
@sergsergey4251
@sergsergey4251 6 місяців тому
Спасибо!
@user-mb7kp1bl4w
@user-mb7kp1bl4w 6 місяців тому
Большое спасибо за видео. Было очень полезно
@user-no7sl1yk3f
@user-no7sl1yk3f 6 місяців тому
Спасибо
@alsua1297
@alsua1297 3 місяці тому
спасибо
@user-nj9yu4dd8p
@user-nj9yu4dd8p 6 місяців тому
Спасибо!
Стань гуру VS Code с набором топ-фишек
19:31
Михаил Непомнящий
Переглядів 14 тис.
Eslint и код-стайл для React-приложения
23:55
Михаил Непомнящий
Переглядів 43 тис.
ESLint with Prettier and Vue in VS Code
20:00
Dan Fletcher
Переглядів 23 тис.
Самый простой способ начать работу с БД
22:37
Михаил Непомнящий
Переглядів 5 тис.
Nunca mais erre com Eslint e Prettier!!!
15:38
Igor Faustino | Dev
Переглядів 6 тис.
Why I always use ESLint in my projects
7:55
Web Dev Cody
Переглядів 50 тис.
Vite для быстрой разработки и сборки приложения
10:49
Михаил Непомнящий
Переглядів 60 тис.
You're (Probably) Using Prettier Wrong
6:04
Theo - t3․gg
Переглядів 95 тис.
Обновление npm зависимостей одной командой
0:59
Михаил Непомнящий
Переглядів 7 тис.
Learn React Hooks: useMemo - Simply Explained!
13:41
Cosden Solutions
Переглядів 69 тис.
СЛОМАЛСЯ ПК ЗА 2000$🤬
0:59
Корнеич
Переглядів 1,9 млн
поворотний механізм для антени
0:17
Lazeruk
Переглядів 13 тис.
🤯Самая КРУТАЯ Функция #shorts
0:58
YOLODROID
Переглядів 2,9 млн