Inspiriert von Middleman, wird dieser Knoten.js Toolchain mit Ziegeln und einer Sammlung von Plugins geschrieben, damit das schnelle Autoring ifatische Web -Apps ermöglicht.
Der Fokus hier liegt darauf, Apps schnell zu entwickeln und bereitzustellen, die auf CSS oder JavaScript höher sind und Tools nutzen, die es am wenigsten ermöglichen, die Aufgabe zu erledigen (z. B. weniger Stift, Coffeescript, Jade). Um die Dateiverwaltung so zu optimieren, dass Ihre Apps so schnell wie möglich geladen werden (vermutlich über einige CDN).
Zuerst müssen Sie den systatischen Server installieren. Es ist wirklich nur ein BrickSJS+Services -Server mit einer Reihe vordefinierter Pfade und Vorlagen.
npm install systatic -g
systatic new my_proj
cd my_proj
systatic
Der letzte Befehl führt den Server standardmäßig Port 3000 aus (wie Ziegel können Sie den Port mit --port ändern).
Das standard generierte Projekt wird mit einer config.json -Datei geliefert. Diese Datei definiert verschiedene Quellen- und Plugin -Kombinationen. Im Allgemeinen sollten Sie nur die Standardeinstellungen befolgen. Wenn Sie jedoch etwas ändern möchten (z. B. die JavaScript -Route von /javascripts nach /js ) ändern diese Datei.
Da es sich um einen statischen Standort handelt, wird der nächste Befehl, den Sie ausgeführt haben, build . Dadurch werden die Notwendigkeit eines App -Servers wie NodeJs entfernt und ermöglicht es Ihnen, die statischen Dateien irgendwo wie CloudFront zu entfernen.
Es ordnet das statische Standortgebäude in Phasen, ähnlich wie größere Bausysteme wie Maven.
Bühnen (die Ausführung einer Stufe führt jede Stufe aus):
Durch die Auswahl einer Phase werden alle angeschlossenen Plugins bis hin zu dieser Phase ausgeführt.
systatic merge
Reinigt das Ausgabeverzeichnis, erstellen Sie die HTML -Ressource, erstellen Sie die Vermögenswerte und führen Sie sie in minimale Dateien zusammen.
systatic test
Tut dasselbe, führt aber dann auch einen optionalen statischen Integrationstest aus (derzeit keine Implementierungen, aber wenn man so etwas wie Qunit betrachtet)
Mit diesem generierten statischen Inhalt möchten Sie als nächstes auf einem Server, Git Repo, CDN ... was auch immer bereitgestellt werden.
systatic publish
Ich überlege, die hartcodierten Plugins neu zu implementieren, um mit NPM-Plugins zu arbeiten, die pro Projekt konfiguriert werden. Damit können Plugins von Drittanbietern die eigene Bühne zur Build/Render-Toolchain hinzufügen.
Aktuelle Gedanken:
Ein Beispiel kann sein, wenn jemand eine Funktion hinzufügen wollte, um einen Satz von Symbolen zu komprimieren, die als CSS in Sprites verwendet werden, und diese Informationen in die nächste Aktion übergeben (die an die Kompressstufe gebunden wäre).