Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: eslint, import, barrel files, module resolution

Есть ли правила линтера, ограничивающие импорт не из индексных файлов?

Вопрос проверяет знание правил линтера для контроля импортов из индексных файлов в проекте.

Короткий ответ

Да, существуют правила ESLint, такие как no-restricted-imports или import/no-internal-modules, которые могут ограничивать импорт не из индексных файлов. Это помогает поддерживать чистоту архитектуры и избегать глубоких зависимостей. Например, правило import/no-internal-modules запрещает импорт из внутренних модулей, разрешая только из индексных файлов.

Длинный ответ

Что такое индексные файлы и зачем их использовать?

Индексные файлы (обычно index.js или index.ts) служат точкой входа для модуля, экспортируя только публичное API. Это скрывает внутреннюю структуру и упрощает рефакторинг.

Правила линтера для контроля импортов

ESLint с плагином eslint-plugin-import предоставляет несколько правил для ограничения импортов:

  • import/no-internal-modules — запрещает импорт из внутренних файлов модуля, разрешая только из индексных файлов.
  • no-restricted-imports — позволяет вручную задать список запрещённых путей.

Пример настройки

// .eslintrc.js
module.exports = {
  plugins: ['import'],
  rules: {
    'import/no-internal-modules': ['error', {
      allow: ['src/components/*/index']
    }]
  }
};

В этом примере разрешён импорт только из индексных файлов внутри папок компонентов.

Практический пример

// Запрещено:
import Button from './components/Button/Button';

// Разрешено:
import { Button } from './components/Button';

Первый импорт обращается напрямую к файлу Button, второй — через индексный файл, который реэкспортирует компонент.

Вывод

Использование правил линтера для ограничения импортов из неиндексных файлов помогает поддерживать модульную архитектуру, упрощает рефакторинг и делает код более предсказуемым. Это особенно полезно в больших проектах с множеством модулей.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

  • TypeScript

    TypeScript

Ключевые слова

#eslint

#import

#barrel files

#module resolution

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию