Frage

Wir haben gerade angefangen, Anforderungen in unserem Projekt zu verwenden, und wir lieben es. Derzeit verwalten wir es nur, um unsere vielen JQuery -Plugins zu verwalten, auf denen die Website ausgeführt wird. Sie kratzen also kaum an der Oberfläche seines Potenzials… aber aufgrund zeitlicher Einschränkungen muss dies warten.

Ich habe einige Probleme, den Optimierer zu spielen, da ich es mir gerne wünschte. Ich frage mich, ob Sie mir sagen könnten, ob es überhaupt möglich ist, dies zu tun. Meine Verzeichnisstruktur:

> /common/
> /common/*.js - common plugins used on most pages on the site
> /infrequent/
> /infrequent/infrequentModule.js
> /infrequent/ckeditor
> /infrequent/ckeditor/1000s.js
> /require.js
> /jquery.js
> /main.js - this file contains all scripts in common. It looks at the page and call the necessary plugins.

Optimierung/Build -Hoffnungen:

  • Main.js würde alle gemeinsamen Skripte enthalten. Auf den meisten Seiten ist dieses Skript das einzige geladen (mit Ausnahme von Request.js)
  • Main.js schaut sich die Seite an, wenn sie sieht, dass es ein seltenes Plugin/Modul benötigt, lädt es die Async. Also kann ich auf einer seltenen Seite, die ich verlangen kann.

Ich habe verschiedene Methoden im Build -Skript ausprobiert, um Dateien auszuschließen und hinzuzufügen, um die gewünschten Ergebnisse zu erzielen, aber ohne Erfolg. Hat jemand irgendwelche Ideen oder weiß, ob dies tatsächlich auch möglich ist?

War es hilfreich?

Lösung

Ok, also habe ich einige großartige Antworten in der Google -Gruppe für fordern.js - bekommen - http://groups.google.com/group/requirejs/browse_thread/thread/359b02473f4e707

Das Folgende ist eine nützliche Antwort, die mir gegeben wurde, dass ich hoffe, jemand anderem zu helfen ...

Hallo, ich mache das derzeit in einem meiner Projekte, hier ist mein Build.js:

paths: { 
                //load libs from cdn 
                "jqueryUI": "jqueryUI", //temp static file for build 
                "swfobject": "swfobject", //temp static file for build 
                "Templates": "../Templates/Settings" 
        }, 
modules: [{ 
            name: "appName", 
                        excludeShallow: ["jqueryUI", "swfobject", "Modules/ 
module.preferences"] 
        } 

Dann habe ich in einem meiner Module einen Aufruf für Module/ Module erforderlich.

function loadPreferences(){ 
 require(["Modules/module.preferences"],function(){ 
                     //Execute some init code after the module has 
loaded 
         }) 
 } 
} 

Dadurch wird das erreicht, was Sie beschrieben haben, wo ich benötigt und auf Seitenlast geladen habe, und dann modul. Hoffe das hilft, Jeff.

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