Цель состоит в том, чтобы объединить модули / файлы (json -подобные файлы) в одну сборку по мере их создания. Проблема в том, что другие файлы, которые уже находятся внутри проекта, зависят от еще не сгенерированных файлов.
Я понимаю, как работает compilation.addModule (), , но не понимаю, какой хук мне нужно использовать или как мне нужно, чтобы мой код запускался внутри Webpack, для создания json -подобных файлов до того, как будут обработаны другие файлы, которые зависят от json -подобных файлов. .
До сих пор я пытался использовать свой код в качестве плагина, но получил ошибку, что мои успешно сгенерированные файлы отсутствуют -> Швы мне, как будто веб-пакет пытался загрузить модули и их зависимости раньше мои файлы были сгенерированы.
Я также пытался использовать его в качестве загрузчика, но решил, что он не так подходит, как плагин. Насколько я понимаю, они преобразуют больше, чем загружают что-то (я не хочу преобразовывать существующий источник).
Файл, который импортирует содержимое json -подобных файлов, выглядит следующим образом ( уже внутри проекта):
import { DE_TRANSLATIONS } from "./de";
import { FR_TRANSLATIONS } from "./fr";
export const translations = {
de: DE_TRANSLATIONS,
fr: FR_TRANSLATIONS
};
Не ясно, сколько json -подобных файлов будет сгенерировано (de.ts / fr.ts / en.ts) за сборку. Например, файл с именем de.ts может выглядеть так:
export const DE_TRANSLATIONS = {
"NVT": {
"ERROR": {"MAX": {"SIZE": "Bitte kürzen Sie die Eingabe {0} auf {1} Zeichen."}},
"OUTAGE": {
"REPORT": {
"FROM": "Von",
"SUBJECT": "Störungsmeldung",
"MESSAGE": "Störungsbeschreibung",
"TRANSFORMER": {"STATION": {"NO": "Trafostation Nr."}}
}
},
"REQUIRED": {
"AREA": "Bitte geben Sie eine Fläche an.",
"SUPPLYOBJECT": "Bitte geben Sie einen Ort an.",
"DATE": "Bitte geben Sie ein Datum an.",
"LATITUDE": "Bitte geben Sie einen Breitengrad an.",
"LONGITUDE": "Bitte geben Sie einen Längengrad an.",
"MESSAGE": "Bitte geben Sie eine Meldung an.",
"POSTAL": {"CODE": "Bitte geben Sie eine Postleitzahl an."},
"SUPPLIER": "Bitte geben Sie einen Versorger an.",
"VALUE": "Bitte geben Sie einen Wert an."
}
}
};
Ключи будут использоваться внутри html -tags. Все это будет использовано для интернационализации.