2016-11-18 26 views
5

Mam statyczną stronę internetową za pośrednictwem GitHub Pages, zbudowaną na Jekyll-Bootstrap. Moja mała witryna zawiera wiele skryptów JavaScript, a dla łatwości obsługi chciałbym, aby wszystkie skrypty JavaScript pozostały czytelne dla człowieka w repozytorium GitHub.Minimalizuj JavaScript podczas budowania stron GitHub?

Ale dla użytkownika końcowego mojej witryny, wolałbym zminimalizować JavaScript.

Czy istnieje sposób na zbudowanie haka w procesie budowania stron GitHub, aby zminimalizować/uglifować JavaScript, aby użytkownik mógł pobierać mniejsze pliki?

+0

Czy odkryłeś jakiś sposób, aby to zrobić? Czy masz adres URL do aktualizacji github? –

+0

@DavidJacquel Moje repozytorium GitHub: https://github.com/theJollySin/thejollysin.github.io Czy odkryłem jakiś sposób, aby to zrobić? Tak, ale nie znalazłem żadnego sposobu na wstawienie budowania do procesu budowania stron GitHub, ponieważ jest to dla mnie niewidoczny proces. Ale nie wierzę, że nie ma sposobu na dodanie haczyka budującego, nawet dla statycznej strony internetowej. – theJollySin

Odpowiedz

7

Usługi tworzenia stron GitHub nie mogą mieć innego kodu niż Jekyll w safe mode i small number of included plugins. Odbywa się to dla bezpieczeństwa.

Najlepszym rozwiązaniem jest skorzystanie z alternatywnej usługi do zbudowania witryny i przekazanie wyniku z powrotem do GitHub. Źródło strony będzie znajdować się w gałęzi głównej i skompilowanym źródle na stronach gh.

Odpowiednią usługą byłaby jedna z wielu usług CI, takich jak Travis CI. Są one zwykle używane do uruchamiania pakietów testowych oprogramowania po każdym naciśnięciu przycisku repo, ale można je wykorzystać do zbudowania witryny i przekazania wyników.


The Jekyll docs mają a guide do badania opiera się na Travisa. Pchanie wyjścia nie jest wspomniane. Będziesz potrzebował skryptu w pochodnej after_success w pliku conf Travisa. An example from a site I maintain.

Aby uwierzytelnić naciśnięcie, skrypt będzie wymagał dostępu do tokena dostępu osobistego github. Nie możesz tego po prostu umieścić w skrypcie wdrożenia, ponieważ jest to sekret. Zobacz dokumentację Travis na stronie encrypting environment variables.

+0

OK, jest to nieco poważniejsza zmiana w mojej witrynie, niż się spodziewałem. Więc spróbuję Travisa i Grunta i zobaczę, co się stanie. Dzięki za perspektywę. – theJollySin

2

Jeśli używasz Github do generowania strony i wyświetlania jej, nie ma opcji, aby to zrobić, ponieważ Github jest ściśle związany z tym, co będzie przetwarzać - dla bezpieczeństwa.

Obejście problemu polega na kompilowaniu i przetwarzaniu lokalnie, a następnie przekazywaniu wynikowych wyników na strony gh - co jest przyjemnością po prostu hostować strony statyczne.

Nadal można używać github do hostowania projektu. Po prostu nie korzystasz z Githuba, aby go skompilować.

Twój proces dev może być:

  1. Sprawdź jesteś mistrzem i lokalnym mecz.
  2. Wykonaj swoją pracę w trybie deweloperskim.
  3. Wbudowanie produkcji.
  4. Użyj pomrucznika lub innego programu do minify/uglify/etc _site production files - wyprowadzenie do oddzielnego folderu dist (dystrybucja).
  5. Prześlij zawartość folderu dist na strony gh.
  6. Zatwierdź zmiany w plikach projektu z powrotem do wzorca.

ja prawdopodobnie nie czyni wiele sensu, ale być może ta dyskusja może pomóc więcej: https://gist.github.com/cobyism/4730490

zabawy!