Ich baue ein Reaktionspaket mit dem Webpack. Ich versuche derzeit, json-Dateien in ein Objekt zu verketten, das mit i18next verwendet werden soll. Ich finde es einfach, ich möchte keine überkomplizierten Lösungen verwenden.
Ich habe eine Verzeichnisstruktur wie
messages / locale_name / domain_name.json
Wie kann ich alle JSON-Dateien in einem regulären Objekt in meinem Code importieren?
Bisher kämpfe ich am Anfang, da ich Vorschläge gefunden habe, die benötigt werden ("fs"), aber webpack sagt mir, dass es das fs-Modul nicht lösen kann und ich habe gesehen, dass ich es nicht so installieren kann ist Teil der Standardknotenkonfiguration.
Einige Hilfe geschätzt.
Danke!
Nach einem viel von herumfummeln, war es eigentlich ziemlich einfach. Unten ist, was ich am Ende hatte. Der Schlüssel war, den JSON Loader richtig einzurichten.
Installieren Sie den JSON Loader für das Webpack
npm install --save-dev json-loader
Fügen Sie Ihren Webpack-Ladeprogrammen den JSON Loader hinzu
{ test: /\.json$/, loader: 'json' },
%Vor%
Verwenden Sie Kontext , um die Dateien zu laden und in einem Array zu speichern
in meiner app.js:
%Vor%[Object, Object, Object]
geladen, das ich in var modules
speichere
Dies geschieht am besten mit json-loader
Wenn es installiert ist ( npm install json-loader --save-dev
), können Sie entweder wie in der Readme-Datei des Projekts beschrieben importieren:
Oder Sie könnten Ihrer webpack.config.js einen Loader hinzufügen und den json normal importieren:
webpack.config.js:
%Vor%Und in deiner Quelle:
%Vor%Oder natürlich könnten Sie ES6-Importe verwenden, wenn Sie das in Ihrem Projekt verwenden
@ Sébastien schau dir dieses Plugin an Ссылка
Sie können ein Array von Dateien / Mustern als Eingabe übergeben und eine einzelne Datei als json ausgeben.
zum Beispiel, wenn Sie viele json-Dateien in einem Verzeichnis / node_modules / module-a haben und / node_modules / modul-b
Sie können das folgende Muster verwenden, um alle jsons in einer einzelnen json-Datei wie unten zu verketten
new MergeJsonWebpackPlugin({
"files": ['./jsons/file1.json',
'./jsons/file3.json',
'./jsons/file2.json'],
"output":{
"fileName":"./dist/result.json"
}
})
Haftungsausschluss: Ich habe zu diesem Plugin beigetragen
Um json-Dateien zusammenzuführen, verwenden Sie merge-webpack-plugin (auch mit Gruppierung zum Beispiel nach Dateiname)
Beispielkonfiguration:
%Vor%Es werden diese Beispieldateien nach Dateiname in Gruppen eingeteilt. Jede Gruppe wird geladen und zusammengeführt und in der Ziel-JSON-Datei gespeichert. Um eine zusammengeführte Zieldatei zu benötigen, benötigen Sie nur eine Quelldatei und laden diese.
Tags und Links javascript json node.js reactjs webpack