Machen Symfony 2 Assetic Entwicklung komfortabel
Ich bin auf der Suche nach Möglichkeiten, um Symfony 2 Assetic 1.0.2 Entwicklung erleichtert. Ich benutze Assetic für dumping - /publishing-mein Vermögen.
Derzeit halte ich diesen Befehl ausführen im hintergrund:
php app/console assetic:dump --watch
Hilft es eine Menge, jede änderung die ich mache, um JS oder CSS-Dateien werden automatisch verlassen werden, um die öffentlichen Verzeichnis, in dem die Mittel abgerufen werden, durch den browser.
Allerdings habe ich Probleme mit diesem:
-
Wenn ich eine neue CSS - /JS-Datei aus irgendeinem Grund nicht verlassen werden. Ich brauche die Uhr zum Stillstand, löschen Sie den cache und starten Sie das noch mal ansehen.
-
Es ist sowas von langsam, frisst 5%-20% CPU-Zeit ständig.
Gibt es eine alternative zur Entwicklung mit Assetic? Ich habe bereits versucht, den Ansatz dienen, die Ressourcen, die durch einen controller (use_controller: true
für Assetic), aber es war sogar langsamer (weil seien wir ehrlich: die Tatsache, PHP ist nicht für die Auslieferung statischer Daten).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für mich, dies ist der Schnellste Weg zu entwickeln, mit
Assetic
ich finden konnte. Ich habe versucht, und ich habe versucht zu finden, einen besseren workflow zu verbessern Geschwindigkeit von asset-generation, aber keine gefunden.Gibt es einige arbeiten, die in den master-branch von
Symfony2
auf eineResourceWatcher
Komponente, die eventuell hilft, auf dieses Problem von:inotify
Können Sie beobachten die Fortschritte auf die Komponente dieser PR.
Hoffe, jemand wird Ihnen einige tricks, um die Entwicklung zu beschleunigen mit assetic oder ein ganz anderer workflow.
Grüße,
Matt
Zur Langsamkeit, die Sie ausführen können, mit
--no-debug
und--forks=4
. Installieren Spork Abhängigkeit durch Komponisten, und führen Sieapp/console assetic:dump --no-debug --forks=4
.Wenn du mehr Kerne hinzufügen mehr Gabeln. Wenn Sie möchten, um core(s) frei niedriger die Zahl. Nicht sicher, warum es nicht 4 mal schneller - das ist zweifellos nicht zu intelligent zum zuweisen von verschiedenen assetic jobs auf unterschiedlichen Kernen - aber es ist ein Anfang.
Einige Dinge, die ich versuchte, nur kurz:
Ich bin mir nicht sicher, dass dies helfen wird mit
--watch
als--watch
verbraucht einen ganzen Kern auf seine eigene, weilwhile (true)
in PHP.In developpement verwenden:
/bundles/js/...
für Sie zu arbeiten, das ist nicht ideal für die Produktion, jedoch.Konfigurieren Sie verschiedene Filter für Entwicklung und Produktion. In der Produktion Sie wollen Ihre JS und CSS minified und uglified, aber dies ist eine Verschwendung von Zeit während der Entwicklung.
Stellen Sie sicher, dass
assetic.debug
ist falsch. Dadurch wird sichergestellt, dass Ihre JS und CSS-Dateien verkettet werden, so dass alle JS und CSS kann abgerufen werden in einem HTTP-request jede.Wenn Sie den controller (
assetic.use_controller
wahr ist) und schon hast du deinen browser-Entwickler-toolbox öffnen, stellen Sie sicher, dass deaktivieren Sie den "cache Deaktivieren" aktivieren (in Chrome die checkbox auf dem Fenster "Netzwerk"; in Firefox ist es im Bereich "Einstellungen"). Dies wird es ermöglichen, Ihren browser zu senden If-Modified-since " Anfragen — wenn die Dateien nicht auf dem server geändert wird, wird der server zurück304 Not modified
ohne Neukompilierung Ihres Vermögens, und der browser wird mit der aktuellsten version aus dem browser-cache.Nicht Assetic verwenden, um Dateien aus content delivery Networks (CDNs. Entweder laden Sie die Dateien auf Ihren server (manuell, mit Laube, oder was auch immer), oder laden Sie Sie aus dem CDN durch hinzufügen
<script src=…>
oder<link rel=stylesheet href=…>
direkt in Ihr HTML-template.