Импортируйте JSON прямо как модуль!
Конфиги, словари и статические данные часто загружают отдельно, а затем вручную преобразуют. В современных JS-модулях JSON можно импортировать напрямую через import attributes:
import countries from './countries.json'
with { type: 'json' };
console.log(countries[0]);
Работает и с динамическим import(), поэтому данные можно загружать только тогда, когда они понадобились:
const { default: translations } =
await import('./ru.json', {
with: { type: 'json' }
});
Главное отличие от обычного fetch() — JSON участвует именно в системе модулей: загрузчик понимает ожидаемый тип ресурса, а результат можно использовать как обычную зависимость модуля.
import settings from './settings.json'
with { type: 'json' };
startApp(settings);
🔥 Если JSON — часть приложения, а не данные внешнего API, его не обязательно загружать через fetch(). Импортируйте его как обычную зависимость.
📣 JS Ready | #совет
Конфиги, словари и статические данные часто загружают отдельно, а затем вручную преобразуют. В современных JS-модулях JSON можно импортировать напрямую через import attributes:
import countries from './countries.json'
with { type: 'json' };
console.log(countries[0]);
Работает и с динамическим import(), поэтому данные можно загружать только тогда, когда они понадобились:
const { default: translations } =
await import('./ru.json', {
with: { type: 'json' }
});
Главное отличие от обычного fetch() — JSON участвует именно в системе модулей: загрузчик понимает ожидаемый тип ресурса, а результат можно использовать как обычную зависимость модуля.
import settings from './settings.json'
with { type: 'json' };
startApp(settings);
🔥 Если JSON — часть приложения, а не данные внешнего API, его не обязательно загружать через fetch(). Импортируйте его как обычную зависимость.
📣 JS Ready | #совет