Как относиться к требованию/импорту как к значению, а не как к зависимости

Случай I: у меня есть файл с именем data.json

{
  "a": 1,
  "b": 2,
  ...
}

Который я импортировал/требовал в index.js, как показано ниже

import data from './data.json';

console.log(data["a"]);

Все работает нормально, но весь data.json сбрасывается в index.js при объединении с веб-пакетом, поэтому размер файла увеличивается со значениями свойств, которые мне не нужны.

Вариант II: Однако, если я сделаю следующее в index.js

const a = {
  "a": 1,
  "b": 2,
  ...
}

console.log(data["a"]);

Все в порядке (записывается значение 1), и никаких ненужных свойств json-переменной a не сбрасывалось. Я думаю, что Tree Shaking веб-пакета работает здесь (я не уверен)

Мой вопрос: как мне достичь случая II (без лишних свойств), потребовав/импортировав файл, как это делается в случае I?

Я думал, есть ли способ рассматривать содержимое require как значение, а не как зависимость, чтобы webpack или любой другой упаковщик не включал его в связанный файл.

PS: Я комплектую для WEB


person Toheeb    schedule 25.02.2020    source источник
comment
Не используйте json, а просто экспортируйте объект.. export const data = {a:1, b:2} пс. случай II не является JSON.   -  person Keith    schedule 25.02.2020
comment
Спасибо @Keith, это сработало! Я экспортировал, как вы сказали (как файл js), затем import {data} from './data.js'; Хотите сделать это ответом, чтобы я мог принять.   -  person Toheeb    schedule 25.02.2020


Ответы (1)


Редактировать: Извините, невнимательно прочитал.

Включить файл JSON как Webpack вывод, но не часть bundle.js

Я думаю, это то, что вы ищете.

Решение Дилана тоже очень хорошее, но я предпочитаю простое: отредактировал код..

person Tibor Szűcs    schedule 25.02.2020
comment
Речь идет не о загрузке файла JSON, OP знает, как это сделать. Пожалуйста, перечитайте вопрос. - person Chris G; 25.02.2020
comment
Хорошо, тогда это возможный дубликат stackoverflow.com/questions/38959329/ - person Tibor Szűcs; 25.02.2020
comment
Спасибо ChrisG и всем остальным. Комментарий @keith сработал для меня - person Toheeb; 25.02.2020