Inspirée par Middleman, cette chaîne d'outils Node.js est écrite avec des briques et une collection de plugins pour permettre la création rapide si des applications Web statiques.
L'accent ici est de développer et de déployer rapidement des applications qui sont plus lourdes sur CSS ou JavaScript, en tirant parti des outils qui permettent le moins de saisie pour faire le travail (par exemple, moins, stylet, coffeeScript, jade). Enfin, pour optimiser la gestion des fichiers afin que vos applications se chargent le plus rapidement possible (vraisemblablement via un CDN).
Vous devez d'abord installer le serveur systatique. C'est vraiment juste un serveur BricksJS + Servity avec un tas de chemins et de modèles prédéfinis.
npm install systatic -g
systatic new my_proj
cd my_proj
systatic
La dernière commande exécute le serveur, par défaut, le port 3000 (comme les briques, vous pouvez modifier le port avec --port ).
Le projet généré par défaut sera livré avec un fichier config.json. Ce fichier définit diverses combinaisons source et plugin. Généralement, vous devez simplement suivre les paramètres par défaut, mais si vous souhaitez modifier quoi que ce soit (par exemple, modifiez la route Javascripts de /javascripts vers /js ) modifiez ce fichier.
Étant donné que le point est de générer un site statique, la prochaine commande que vous exécutez sera build . Cela supprimera le besoin d'un serveur d'applications comme NodeJS, et vous permettra de simplement vider les fichiers statiques quelque part comme CloudFront.
Il commande la construction de sites statiques en phases, similaires aux plus grands systèmes de construction comme Maven.
Étapes (l'exécution d'une étape exécute chaque étape jusqu'à celui-ci):
Le choix d'une phase exécutera tous les plugins attachés jusqu'à et y compris cette phase.
systatic merge
Nettoyez le répertoire de sortie, créez la ressource HTML, construisez les actifs et fusionnez-les dans des fichiers minimaux.
systatic test
Fait la même chose, mais exécute également n'importe quel test d'intégration statique en option (actuellement aucune implémentation, mais considérant quelque chose comme Qunit)
Avec ce contenu statique généré, vous voudrez ensuite déployer sur un serveur, git repo, cdn ... peu importe.
systatic publish
J'envisage de réimplémentation des plugins à code dur pour travailler avec des plugins NPM, qui sont configurés par projet. Il s'agit de permettre aux plugins tiers d'ajouter leur propre étape à la chaîne d'outils Build / Render.
Réflexions actuelles:
Un exemple peut être de savoir si quelqu'un voulait ajouter une fonction pour comprimer un ensemble d'icônes utilisées comme CSS dans des sprites et transmettre ces informations dans la prochaine action (qui serait liée à l'étape de compression).