@LionG

Возможно ли как то использовать константы в пути import'a?

import default_locale from `~static/i18n/${config.lang}.json`
messages[config.lang] = default_locale


Использую i18n с несколькими переводами и нужно подгрузить перевод "по умолчанию" который будет использован при пререндере. При этом приложение несколько раз отправляется на пререндер под разные локали. Есть файл настроек сброки в котором указан код локали по умолчанию, но к сожалению не могу подставить его как константу в путь импорта.
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Только динамический import() поддерживает использование переменных, при этом в бандл попадают все файлы соответствующие паттерну.

Если же мы говорим именно о константах, то на этапе компиляции webpack всё равно не знает, что у вас там лежит в config. Он не запускает ваш код - он его собирает.
Если конфиг-файл у вас статический, то вы можете подключить его в сам конфиг вэбпака и сделать там, например, алиас вида:
`~static/i18n/CONFIG_LANG.json`:  path.resolve(`./static/i18n/${config.lang}.json`)
и в коде, соответственно, писать:
import default_locale from `~static/i18n/CONFIG_LANG.json`

Это самый простой способ, в целом же через вэбпак можно много чего ещё наворотить. (даже написать свой loader, который будет таки (пытаться) расшифровывать константы в импорте)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы