import.meta?import.meta — это специальный объект, доступный внутри ES-модулей, который предоставляет метаданные текущего модуля, зависящие от контекста. Он доступен только в области видимости модуля и не может быть использован в обычных скриптах.
import.meta.url?import.meta.url возвращает полный URL файла текущего модуля. Например, в браузере это может выглядеть так:
https://example.com/src/utils.js
В окружении Node.js возвращается URL с протоколом file://:
file:///home/user/project/src/utils.js
import.meta.url обычно используется вместе с конструктором URL для разрешения путей относительно текущего модуля, а не относительно рабочей директории.
const filePath = new URL('./data/config.json', import.meta.url);
Это гарантирует корректное разрешение пути независимо от того, откуда запущен скрипт.
__dirname и __filename в Node.js с ES-модулями, где эти переменные недоступныimport { fileURLToPath } from 'url';
import path from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
Это стандартный паттерн, используемый в Node.js с ES-модулями для воспроизведения поведения CommonJS-переменных __dirname и __filename.
import.meta.url возвращает URL с схемой file:// в окружении Node.js и URL с схемой https:// в браузере, предоставляя полный путь к файлу текущего модуля.
Новый — ещё не проверен сообществом
Вы