2016-11-18 11 views
5

Ich habe eine statische Website über GitHub Pages, auf Jekyll-Bootstrap gebaut. Meine kleine Website enthält eine Menge JavaScript, und aus Gründen der Wartbarkeit möchte ich, dass das gesamte JavaScript im GitHub-Repository lesbar bleibt.JavaScript während GitHub Pages Build reduzieren?

Aber für die Endbenutzer meiner Website, würde ich es vorziehen, die JavaScript minify.

Gibt es eine Möglichkeit, einen Hook in den GitHub Pages-Buildprozess zu integrieren, um JavaScript zu minimieren/zu vereinheitlichen, sodass der Endbenutzer kleinere Dateien herunterladen kann?

+0

Haben Sie einen Weg gefunden, dies zu tun? Haben Sie eine Github Repo URL? –

+0

@DavidJacquel Mein GitHub Seiten Repo: https://github.com/theJollySin/thejollysin.github.io Habe ich einen Weg gefunden, dies zu tun? Ja, aber ich habe keine Möglichkeit gefunden, einen Build-Hook in den Build-Prozess von GitHub Pages zu setzen, weil es für mich ein unsichtbarer Prozess ist. Aber ich weigere mich zu glauben, dass es keine Möglichkeit gibt, einen Build-Hook hinzuzufügen, selbst für eine statische Website. – theJollySin

Antwort

7

Der GitHub-Seitenerstellungsdienst kann keinen anderen Code außer Jekyll in safe mode und small number of included plugins ausführen. Dies geschieht aus Sicherheitsgründen.

Ihre beste Option ist es, einen alternativen Dienst zu verwenden, um Ihre Site zu erstellen und das Ergebnis zurück an GitHub zu senden. Die Quelle für die Site würde sich in der Master-Verzweigung und der kompilierten Quelle in gh-pages befinden.

Ein geeigneter Dienst hierfür wäre einer von vielen CI-Diensten wie Travis CI. Diese werden normalerweise verwendet, um Software-Testsuites bei jedem Push zu einem Repo auszuführen, können aber verwendet werden, um Ihre Website zu erstellen und das Ergebnis an Sie zurückzugeben.


Die Jekyll docs haben a guide zum Testen auf Travis baut. Das Drücken der Ausgabe wird nicht erwähnt. Sie benötigen ein Skript im after_success Derivat in der Travis-Conf-Datei. An example from a site I maintain.

Um Ihre Push das Skript benötigen Zugriff auf Ihre Github persönlichen Zugriffstoken zu authentifizieren. Sie können dies nicht einfach in das Bereitstellungsskript einfügen, da es ein Geheimnis ist. Siehe die Travis-Dokumentation unter encrypting environment variables.

+0

Okay, das ist eine etwas ernstere Änderung meiner Website, als ich erwartet hatte. Also werde ich Travis und Grunt versuchen und sehen, was passiert. Danke für die Perspektive. – theJollySin

2

Wenn Sie Github verwenden, um die Site zu generieren und anzuzeigen, gibt es keine Möglichkeit, dies zu tun, da Github strikt ist, was es verarbeiten wird - aus Sicherheitsgründen.

Eine Problemumgehung besteht darin, Ihre Kompilierung und Verarbeitung lokal durchzuführen, und dann die resultierende Ausgabe an gh-pages zu senden, die einfach statische Seiten hostet.

Sie können immer noch Github verwenden, das Projekt zu hosten. Sie verwenden Github einfach nicht, um es zu kompilieren.

Ihr dev Prozess könnte sein:

  1. überprüfen Sie sind Meister und lokales Spiel.
  2. Tun Sie Ihre Arbeit im Dev-Modus.
  3. In Produktion gehen.
  4. Verwenden Grunzen oder ein anderes Programm minify/uglify/etc die _site Produktionsdateien - die Ausgabe in eine separate dist (Verteilung) Ordner.
  5. den Inhalt des dist Ordners auf Ihre gh-Seiten schieben.
  6. Änderungen an den Projektdateien zurück an den Master übergeben.

Ich bin wahrscheinlich nicht viel Sinn machen, aber vielleicht diese Diskussion vielleicht mehr helfen: https://gist.github.com/cobyism/4730490

Viel Spaß!

Verwandte Themen