Hallo Habr!
Ich möchte den Habrovsk-Leuten den Open Source-Generator für statische Websites vorstellen , der in Node.JS basierend auf Webpack geschrieben wurde .
Das Projekt ist von demselben Jekyll inspiriert, verwendet jedoch im Grunde genommen einen modernen technologischen Stapel. Beispielsweise bietet es die Möglichkeit, geänderte Skripte und Stile "heiß zu laden" (ohne die Seite neu zu laden).

Das Projekt richtet sich an ein internationales Publikum, daher sind die offizielle Website, Dokumentation und Videos in englischer Sprache.
Eigenschaften
- Moderner Technologie-Stack
Erstellen Sie moderne Websites mit gut verpackten (minimierten, komprimierten, einschließlich gzip) Skripten und Stilen.
Sie können schnell einen Site-Prototyp entwickeln und auf dem Server bereitstellen.
Verwenden Sie ein modernes Front-End- Framework (Webpack innen) - Vue.JS , React , Angular , Ember usw. - Super schnell und zuverlässig
Es verarbeitet ~ 1000 Seiten pro Sekunde (abhängig vom Inhalt der Seite sowie der Prozessorleistung).
Es ist klar, dass das Rendern von statischem HTML um ein Vielfaches schneller ist als jede interpretierte Sprache. - Jedes Hosting reicht aus
Es erfordert keine Datenbank (Informationen werden in Dateien gespeichert) und funktioniert auf jedem Hosting (da die Ausgabe statische HTML-Dateien und Assets sind ). - Eingebettete Bereitstellung
Erstellen Sie eine Voreinstellung und stellen Sie die Site über FTP, SFTP oder sogar rsync
auf dem Server rsync
.
Vor kurzem wurde Material zur kostenlosen Bereitstellung einer Website veröffentlicht. - Sicher. Keine Updates
Sie können die Notwendigkeit regelmäßiger Updates vergessen, wie zum Beispiel in demselben WordPress.
Sicherheit auf dem Niveau von 100%, weil Bisher ist es niemandem gelungen, statisches HTML (Feature) zu knacken. - Kostenlos. Open Source
Verwendung für die Gesundheit. Zahlen Sie keinen Cent.
Für welche Zwecke ist es geeignet:
- Rapid Prototyping (erstellte eine Vorlage, zeigte einen funktionierenden Prototyp und zog ihn dann auf den Motor)
- Portfolio
- Unternehmenswebsite
- Produktseite
- Persönlicher Blog
Geeignet für jede Site, auf der keine benutzergenerierten Inhalte vorhanden sind.
Sie können sogar ein kollektives Blog mit Pull Requests auf Github erstellen .
Mit Firebase oder einer anderen API, die in einer beliebigen Sprache (PHP, Ruby, Python, Node.JS) geschrieben ist, oder sogar mit WordPress (JSON-API) und einem modernen Front-End- Framework wie Vue.JS oder React können Sie eine dynamische Website für erstellen komplexere Aufgaben: Online-Shop, Produktkatalog und so weiter.
Warum es nicht geeignet ist:
- Forum
- Soziales Netzwerk
- Chat
Im Allgemeinen für ein Projekt, in dem viele benutzergenerierte Inhalte vorhanden sind, in dem viele Datenbankarbeiten und Seiten im laufenden Betrieb generiert werden.
Anforderungen
Sie müssen Node.JS (9.x oder höher) und NPM (normalerweise zusammen) installiert haben.
Herunterladen und installieren (falls noch nicht geschehen).
Letzteres wird empfohlen (v10.12.0) Node.JS.
Es funktioniert nicht mit Node.JS <v9.x, da SASS, Less, Stylus sofort kompiliert wird und Node-Sass Version 9 erfordert.
Sie können auch Garn anstelle von NPM verwenden .
Cogear.JS läuft auf:
Sie können jetzt modischen VSCode für die Entwicklung verwenden.
Installation
Einfach, ohne Tricks:
$ npm install cogear -g
Das ist alles. Die Installation war erfolgreich.
Cogear.JS nach der Installation ist über den Befehl cogear
console verfügbar.
Jetzt können Sie die erste Site generieren.
Verwenden Sie
Wechseln Sie in das Verzeichnis, in dem Ihre Websites gespeichert sind.
$ cd ~/Sites
Rufen Sie das Team an, um eine neue Site zu erstellen:
$ cogear new site.io

Fahren Sie dann mit diesem Verzeichnis fort:
$ cd ~/Sites/site.io
Starten Sie Cogear.JS im development
oder production
(Vorbereitung für die Produktion) ( weitere Informationen zu den Betriebsmodi ).
$ cogear
Optionen
Sie können eine Liste der Befehlszeilenoptionen --help
indem Sie das Flag --help
hinzufügen.

Nützliche Links
Wenn das Thema das Interesse der Habrovsk-Bürger weckt, kann ich eine Reihe von Tutorials erstellen, was und wie.
PS Ich habe nicht gepostet Open Source.
Fragen stellen, versuchen zu beantworten.