Ich habe eine große Menge von Javascript-Dateien in 4 Unterverzeichnisse in meiner App aufgeteilt. Im Grunzen greife ich alle und kompiliere sie zu einer Datei. Diese Dateien haben keine module.exports-Funktion.
Ich möchte Webpack verwenden und es in 4 Teile teilen. Ich möchte nicht manuell hineingehen und alle meine Dateien benötigen.
Ich möchte ein Plugin erstellen, das beim Kompilieren die Verzeichnisbäume durchläuft, dann alle .js-Dateinamen und -Pfade abruft, dann alle Dateien in den Unterverzeichnissen benötigt und zur Ausgabe hinzufügt.
Ich möchte, dass alle Dateien in den einzelnen Verzeichnissen zu einem Modul kompiliert werden, das ich dann aus meiner Einstiegspunktdatei benötigen oder in die Assets aufnehmen kann, die unter http://webpack.github.io/docs/plugins.html erwähnt werden.
Wenn ich eine neue Datei hinzufüge, möchte ich sie nur im richtigen Verzeichnis ablegen und weiß, dass sie enthalten sein wird.
Gibt es eine Möglichkeit, dies mit einem Webpack oder einem Plugin zu tun, das jemand geschrieben hat, um dies zu tun?
quelle
image-size-loader
für alle Bilder verwenden möchte , um Platzhalter mit korrekten Seitenverhältnissen zu erstellen.loaders: [ { test: /\.json$/, loader: 'json' } ]
.{ test: /\.json$/, loader: 'json' }
Fügt den JSON-Loader für JSON-Dateien hinzu, sofern Sie den Loader installiert haben.require.context(...)
Webpack eine Warnung auslöst , wenn Sie versuchen, hier trocken zu sein, indem Sie eine Funktion schreiben, die Sie aufruft (z. B. wenn Sie versuchen, alles in mehreren Ordnern zu benötigen). Die Argumenterequire.context
müssen Konstanten zur Kompilierungszeit sein.require-context
es sich um einen Wrapperwebpack
handelt und das Beispiel auswebpack
der Dokumentation unter webpack.js.org/guides/dependency-management/#context-module-api stammt, die 2016 hinzugefügt wurde (in github.com/webpack/). webpack.js.org/commit/… ), auch nachdem ich meine Antwort geschrieben habe ... Vielleicht wurden die Autoren von webpack von meiner Antwort beeinflusst. Beachten Sie, dass sie es erweitert haben, um Cache zu haben.In meiner App-Datei habe ich schließlich die Anforderung gestellt
Mit freundlicher Genehmigung dieses Beitrags: https://github.com/webpack/webpack/issues/118
Es werden jetzt alle meine Dateien hinzugefügt. Ich habe einen Loader für HTML und CSS und es scheint großartig zu funktionieren.
quelle
expr
in diesem Beispiel?expr
ist ein Pfad zu einer einzelnen Datei im Kontextordner. Wenn Sie dies nicht nur tun müssen, um alle HTML-Dateien zu benötigen, ist dies nützlich. webpack.github.io/docs/context.html#context-module-apiexpr
Argument hier tut, selbst nachdem ich mir die Webpack-Dokumente angesehen habe. Was bedeutet "dies nicht nur, um alle HTML-Dateien zu benötigen"? dankeexpr
hier bedeutetWie wäre es mit einer Karte aller Dateien in einem Ordner?
Mach das:
quelle
Beispiel, wie Sie eine Karte aller Bilder im aktuellen Ordner erhalten.
quelle
Alles Verdienst an @splintor (danke).
Aber hier ist es meine eigene abgeleitete Version.
Leistungen:
{module_name: exports_obj}
Objekt gesammelt .Code (Originalversion):
Beispiel:
Beispielausgabe für eventuelle
console.log(allModules);
:Verzeichnisbaum:
Code (Deep Version):
Beispiel:
Ergebnis des vorherigen Beispiels mit dieser Version:
quelle
das funktioniert bei mir:
HINWEIS: Dies kann rekursiv .js-Dateien in Unterverzeichnissen von ./js/ erfordern.
quelle