Что здесь происходит: const dynamicRouteFiles = import.meta.glob('./modules/**/*.ts', { eager: true, });

Разберём построчно 

const dynamicRouteFiles = import.meta.glob(
  './modules/**/*.ts',
  { eager: true }
)

Что это такое в целом

Это Vite-фича (не чистый JS и не Vue), которая:

🔍 находит все .ts файлы в папке modules и импортирует их


Подробно

1️⃣ import.meta.glob(...)

Это специальная функция Vite:

import.meta.glob('./modules/**/*.ts')

означает:

📁 Пример структуры:

modules/
  auth.ts
  admin/users.ts
  admin/roles.ts

2️⃣ Что вернёт import.meta.glob

Без eager:

{
  './modules/auth.ts': () => import('./modules/auth.ts'),
  './modules/admin/users.ts': () => import('./modules/admin/users.ts'),
}

⚠️ Файлы не загружаются сразу, а лениво.


3️⃣ { eager: true }

{ eager: true }

означает:

📦 импортировать файлы сразу при запуске

Теперь результат будет:

{
  './modules/auth.ts': { default: ... },
  './modules/admin/users.ts': { default: ... },
}

То есть:


Зачем это обычно используют

🔹 Динамическая регистрация

Чаще всего:

Пример с роутами:

const routes = []

Object.values(dynamicRouteFiles).forEach((module: any) => {
  routes.push(...module.default)
})

Каждый файл:

// modules/admin.ts
export default [
  { path: '/admin', component: Admin }
]

Почему так делают

✔ Не нужно вручную импортировать каждый файл
✔ Просто добавил файл — он автоматически подключился
✔ Удобно для больших проектов


Важно помнить ⚠️


Коротко

Эта строка автоматически импортирует все .ts файлы из modules и подкаталогов при старте приложения.

 


Revision #1
Created 2026-01-17 12:32:59 UTC by Nikolay
Updated 2026-01-17 12:33:59 UTC by Nikolay