Frage

Ich habe Code wie den folgenden

define("ModuleA", ["InitialDependency"], function (initDep){
   return {};
});


define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){
   return {};
});

Jedes dieser Module ist in separaten Dateien „ModuleA.js“, „Moduleb.js“, „InitialDependency.js“ und „OtherDependency.js“ definiert.

Diese Module werden nacheinander in meine Anwendung geladen.ModulB wird immer nach ModulA geladen.Das bedeutet, dass ich in der Optimierungsphase nicht möchte, dass das Skript von ModulA im erstellten Skript für ModulB kombiniert wird.Ich möchte Folgendes

ModuleA.built.js enthält

  • InitialDependency
  • ModulA

ModuleB.built.js enthält

  • AndereAbhängigkeit
  • ModulB

Ich möchte sie jedoch nicht alle in derselben Datei haben, da ModuleB möglicherweise nie geladen wird.

Ich kann ein Build-Skript für beide Module erstellen, aber das wird zeitaufwändig sein, da ich in meinem Projekt ziemlich viele Module habe und ein Build-Skript hätte, das viele davon auf einmal erstellt.

Was muss ich wissen, um ein Build-Skript zum Erstellen dieser beiden Module (und weiterer Module, die demselben Abhängigkeitsmuster folgen) zu erstellen?

War es hilfreich?

Lösung

Um dies zu erreichen, müsste man mit dem spielen modules Konfigurationsoption.

Es könnte so aussehen:

{
    modules: [
        {
            name: "ModuleA",
            include: [],
            exclude: []
        },
        {
            name: "ModuleB",
            exclude: [
                "moduleA"
            ]
        }
    ]
}

Ein ähnliches Beispiel-Setup von James gibt es hier: https://github.com/requirejs/example-multipage

Wenn Sie diese Module separat erstellen, müssen Sie möglicherweise die Pfade aktualisieren.Wenn ja, wäre es am besten, eine Datei zu erstellen, die Folgendes enthält: require.config Rufen Sie mit einer speziellen Einstellung für Ihre erstellte App auf und fügen Sie diese Konfiguration anstelle Ihrer üblichen ein.Aber wenn Sie die Abhängigkeiten gut getrennt festlegen, ist das wahrscheinlich kein Problem.Mit „gut getrennt“ meine ich das wenn moduleA ist das Basisskript, dann sollte es keine Abhängigkeiten enthalten moduleB - aber ich denke, das ist gesunder Menschenverstand!

Hinweis zu unterlegten Modulen:Da Shim-Konfigurationen nur funktionieren, wenn Dateien geladen werden und von RJS zum Bestellen von Plugins verwendet werden, stellen Sie sicher, dass Sie kein Shim-Modul ohne dessen Abhängigkeit einbinden, wenn Sie nicht 100 % sicher sind, dass diese vorher geladen werden.Weitere Infos hier: https://github.com/requirejs/example-multipage-shim

Ich hoffe das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top