Всем привет. как правильно импортировать json как обычный файл (вроде

картинки) и получить путь к нему? типа

import f from './file.json'
console.log(f) // -> /file.123456.json

если добавить правило в file-loader, билд падает с
Module parse failed: Unexpected token m in JSON at position 0 while parsing near 'module.exports = __w...'
видать file-loader выдал экспортирующий путь модуль-заглушку, но вебпак всё равно пытается это парсить как json

24 ответов

54 просмотра

Если не ошибаюсь, import * from Попробуй. Если не сработает - с позором удалю сообщение.

3bl3gamer- Автор вопроса

Ну логично же - так же как и другие ресурсы через ассетс лоадер

https://webpack.js.org/guides/asset-modules/

У тебя 5ый пак?

3bl3gamer- Автор вопроса
CherryTea 🇺🇦
Ну логично же - так же как и другие ресурсы через ...

точно, забыл про него, спасибо. да, пятый. а можно ли ещё как-то выхлоп оптимизировать, а то на import f from './file.json' console.log(f) он теперь генерит var r, o = { 211: (r, o, e) => { r.exports = e.p + "file.9d4ff493.json"; }, }, e = {}; function t(r) { var p = e[r]; if (void 0 !== p) return p.exports; var s = (e[r] = { exports: {} }); return o[r](s, s.exports, t), s.exports; } (t.p = "/"), (r = t(211)), console.log(r);

3bl3gamer- Автор вопроса
3bl3gamer
(t.p = "/"), console.log(t.p + "file.9d4ff493.json...

Что б такую красоту делать надо не вебпаком собирать

3bl3gamer
(t.p = "/"), console.log(t.p + "file.9d4ff493.json...

Я так понимаю вы такое хотите https://www.npmjs.com/package/@chialab/esbuild-plugin-meta-url

3bl3gamer- Автор вопроса
CherryTea 🇺🇦
Так это не модуль

а кто? если собрать с minimize: false, он в каментах это тоже модулем называет

3bl3gamer- Автор вопроса
CherryTea 🇺🇦
Код предложенный вами не модуль

в смысле? мой код с консоль.логом не модуль?

3bl3gamer
screenshot а кто? если собрать с minimize: false, он в камент...

реализация рекваера вебпаковского к чему тут она скинута я не понял

3bl3gamer- Автор вопроса

у меня всё-таки есть надежда, что нет. потому что // some_path.js export default __webpack_public_path__ + 'the-path-to-file.ext' // index.js import f from './some_path.js' console.log(f) таки билдится компактно без всяких кусков вебпакового рантайма: console.log("/the-path-to-file.ext");

3bl3gamer
у меня всё-таки есть надежда, что нет. потому что ...

Типо он сразу инлпйнит значение которое вы экспортнули?

3bl3gamer
ну да

А если минификацию отключить?

3bl3gamer
у меня всё-таки есть надежда, что нет. потому что ...

А вы точно уверены, что этот момент — и есть bottleneck #1 вашего приложения?

3bl3gamer- Автор вопроса

конечно нет. но если он рядом только что билдил нормально, почему бы не разобраться, как сделать нормально и в этом случае тоже? ну или убедиться, что никак. бесценные грабли опыт и стремление к прекрасному

3bl3gamer
конечно нет. но если он рядом только что билдил но...

Можно сразу ищти в вебпак репозиторий смотреть сорсы. Если повезет там есть тест на эту фичу по которому легко будет найти логику

Похожие вопросы

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Карта сайта