Стандартное api eslint не позволяет сделать эти штуки:
- добавить в проект собственные eslint правила, не публикуя их как отдельный npm пакет
- расширить нативное eslint правило, которое используется внутри плагина, не переопределяя его. Например, плагин airbnb определяет правило
no-restricted-import
, я хочу добавить запретить еще несколько собственных импортов - на часть кейсов одного правила кидать warn, а на другую часть error. Например, я запрещаю
null
иif
через правилоno-restricted-syntax
, я хочу кидать наnull
error, а наif
пока warn
В этом репозитории я описал способы решения всех перечисленных проблем. Все решается установкой и правильной настройкой eslint-plugin-local
- .eslintplugin.js - здесь мы описываем локальные правила
- .eslintrc.js - здесь мы включаем локальные правила
- index.js - здесь смотрим как все работает
После добавления новых правил в .eslintplugin.js
,нужно перезагрузить редактор чтобы он подхватил изменения
- https://astexplorer.net/ - вставляешь код, а он показывает AST. По умолчанию eslint использует парсер
espree
- https://eslint.org/docs/developer-guide/selectors#what-is-a-selector - дока по eslint селекторам, пригодится для составления no-restricted-syntax правил и написания правил