Комментарии 9
Автоматически упорядочивать импорты в соответствии с заранее оговорёнными правилами, что значительно снижает вероятность ошибок и конфликтов в коде.
А каким образом порядок импортов "значительно" влияет на вероятность ошибок в коде?
Спасибо за вопрос.
Неправильный порядок импортов может привести к тому, что модули будут инициализированы не в нужном порядке, что иногда вызывает ошибки выполнения. Консистентность помогает избежать подобных проблем.
А так вы правы. Здесь речь идет скорее о читаемости кода в первую очередь.
Это моя первая стать. Автор я пока так себе ;)
О-ф-ф...
Если выполнение программы зависит от порядка импортов, это что-то не то...
В js бывает проблема зацикливания импортов, но перестраиванием порядка она не решается
Зацикливание импортов это понятно. Здесь плагин не поможет.
Пример чуть-чуть надуманный, но подобное, к сожалению, встречается.
foo.js
window.aloha = {
foo: "hi",
};
bar.js
console.log(window.aloha.foo);
test.js
import "./foo";
import "./bar";
На вызовет ошибку
import "./bar";
import "./foo";
Вызовет ошибку
Uncaught TypeError: Cannot read properties of undefined (reading 'foo')
at bar.js:1:26
И подобные вещи встречаются. Этот пример конечно надуманый, но буквально вчера столкнулся с подобной проблемой, где порядок импортов действительно был важен.
Но Вы правы. Этот плагин написан, в первую очередь, для лучшего структурирования кода, а не для то, чтобы избежать ошибок. ;) Спасибо за замечание.
Интересно, всегда пишу на ES-модулях и даже не смотрю что импортировано и в каком порядке, автоматическим импортом занимается IDE. Звучит как "Недавно я столкнулся с проблемой: сотрудники в офисе ставили кружки в шкафу не по размеру ручки, и мне пришлось написать инструкцию по правильному размещению офисной посуды."
Создание собственного ESLint-плагина — прагматичное решение реальной проблемы, с которой сталкиваются команды при работе над проектами. Крутая возможность настройки порядка импортов и группировки по категориям и внедрение автоматической коррекции через флаг --fix !!! Отличная работа!
Как я решил проблему гибкого управления порядком импортов в большом проекте