2012-05-09 6 views
6

Also ... wie ich durch die Sencha Command Dokumentation gelesen habe, sagt es mir, dass der Build automatisch (mit Phantom JS) in der Lage sein wird, mir zu sagen, was alle meine Abhängigkeiten sind und in welcher Reihenfolge. Davon ausgehend erwarte ich, dass der Befehl sencha app build production alle meine Abhängigkeiten in eine js-Datei verkettet, unabhängig davon, ob ich sie manuell in die app.json-Datei eingefügt habe. Ich sehe das jedoch nicht.Sencha App Build Produktion: nicht kombinieren meine js

Muss ich manuell eine Liste von JS-Dateien in der app.json verwalten? Wenn ja, dann ist das in Ordnung. Ich habe gerade anders als die Dokumentation verstanden. Bitte helfen Sie.

bearbeiten -
Also meine index.html ist sehr minimal. Es hat nur ein Skript-Tag zu einer externen Ressource-js-Datei und ein Skript-Tag zu 'sdk/microloader/development.js'. Meine app.js ist in meiner index.html nicht referenziert. Wenn ich den Befehl "sencha app build production" in mein App-Verzeichnis eintrage, wird der Vorgang ohne Fehler beendet. Aber es findet nur 53 Abhängigkeiten, wenn ich weiß, dass wir weit über 500. Hier wird die Ausgabe im Terminal ist, wenn ich den Build ausführen:

[email protected] ~/source/ab/AreaBook/web/src/main/webapp/sencha2 $ sencha app build -e production 
[INFO] Deploying your application to /home/aaronfrost/source/ab/AreaBook/web/src/main/webapp/sencha2/build/production 
[INFO] Copied sdk/sencha-touch.js 
[INFO] Copied app.js 
[INFO] Copied resources/css/app.css 
[INFO] Copied resources/icons 
[INFO] Copied resources/loading 
[INFO] Resolving your application dependencies (file:////path/to/my/sencha2/index.html) 
[INFO] Found 53 dependencies. Concatenating all into '/dir/to/my/sencha2/build/production/app.js' 
[INFO] Processed sdk/sencha-touch.js 
[INFO] Minifying sdk/sencha-touch.js 
[INFO] Processed app.js 
[INFO] Minifying app.js 
[INFO] Minifying resources/css/app.css 
[INFO] Minified sdk/sencha-touch.js 
[INFO] Minified app.js 
[INFO] Minified resources/css/app.css 
[INFO] Generated app.json 
[INFO] Embedded microloader into index.html 
[INFO] Generating checksum for appCache item: index.html 
[INFO] Generated cache.manifest 

So dann habe ich in meinem neuen app.js aussehen, das ist in meinem Build/Produktionsordner, und es hat eine Reihe von Sencha-Abhängigkeiten zusammen verkettet, aber die einzige Datei von mir, die concat'd und minimiert wird, ist meine app.js, die die einzige js-Datei ist, auf die in meiner app.json verwiesen wird. Deshalb habe ich mich gefragt, ob ich es manuell in die app.json schreiben muss, damit es concat'd und minimiert wird. Keine der in meiner app.js aufgelisteten Abhängigkeiten erfordern, dass Abschnitt in die builded app.js aufgenommen wird.

Zusammenfassend gibt es mir nicht das gleiche Verhalten, das ich erwarten würde, meine app.js mit all meinen Abhängigkeiten zu bauen. Irgendwelche Gedanken wären nett.

+0

Sprechen Sie über ST2-Abhängigkeiten (mit 'requires' deklariert) oder sprechen Sie von externen Abhängigkeiten? Soweit ich weiß, werden nur die js-Dateien aus Ihrer MVC-Architektur und die explizit mit 'requires' angegebenen Abhängigkeiten in Ihre gebaute app.js integriert. Wenn Sie externe js-Skripte (nicht zu ST2) hinzufügen möchten, dann müssen Sie diese in app.json erwähnen. Wie auch immer, ist es eine gute Sache, ST2-Skripte mit externen zu mischen? Sind diese Bibliotheken? – borck

+0

Ich spreche über ST2 Abhängigkeiten. Sie befinden sich alle in einem erforderlichen Abschnitt in einer Klassendatei. – frosty

+0

Das ist seltsam ... Die Anzahl der Abhängigkeiten, die Sie erwähnen, ist in der Tat ziemlich niedrig. Konnten Sie feststellen, welche Abhängigkeiten fehlen? In meinem Fall enthält der Befehl sencha immer alles, ohne etwas in app.json ändern zu müssen ... Haben Sie Ihre App mit dem Befehl sencha erstellt? – borck

Antwort

1

Aus meiner Erfahrung musste ich die app.json nie ändern. Alles, was in einer 'Ext.requires'-Anweisung erwähnt wird, wird automatisch in der endgültigen (eindeutigen) js-Datei durch den Sencha-Befehl verkettet.

Wenn Sie immer noch Probleme haben, sollten Sie vielleicht weitere Details zu den Dateien angeben, die nicht korrekt behandelt werden.

+0

Ich habe eine Bearbeitung hinzugefügt. Bitte schau es dir an. – frosty