2016-11-18 50 views
5

我有一個通過GitHub Pages建立在Jekyll-Bootstrap上的靜態網站。我的小網站包含大量的JavaScript,爲了可維護性,我希望所有的JavaScript在GitHub倉庫中保持人性化的可讀性。在GitHub頁面構建過程中縮小JavaScript?

但是對於我的網站的最終用戶,我寧願縮小JavaScript。

有沒有辦法在GitHub Pages構建過程中構建鉤子以縮小/ uglify JavaScript,以便最終用戶可以下載更小的文件?

+0

你有沒有探索某種方式來做到這一點?你有一個github回購網址? –

+0

@DavidJacquel我的GitHub頁面回購:https://github.com/theJollySin/thejollysin.github.io我探索了一些方法來做到這一點?是的,但我還沒有找到任何方法將構建鉤子放入GitHub Pages構建過程中,因爲這對我來說是一個看不見的過程。但我拒絕相信沒有辦法添加構建鉤子,即使是靜態網站。 – theJollySin

回答

7

GitHub的頁面構建服務除了Jekyll在safe modesmall number of included plugins之外不能有任何其他代碼在其上運行。這是爲了安全。

您最好的選擇是使用替代服務來構建您的網站,並將結果返回給GitHub。該網站的源代碼將駐留在主分支中,並且編譯後的源代碼位於gh頁面中。

這樣做的合適服務將是許多CI服務之一,如Travis CI。這些通常用於在每次推送回購時運行軟件測試套件,但可用於構建您的網站並將結果推回給您。


Jekyll文檔有a guide用於在Travis上測試版本。沒有提到輸出。您需要在Travis conf文件中的after_success衍生產品中使用腳本。 An example from a site I maintain

要驗證您的推送腳本將需要訪問您的github個人訪問令牌。你不能直接將它放在部署腳本中,因爲它是一個祕密。請參閱encrypting environment variables上的Travis文檔。

+0

好吧,對我的網站來說這是一個比我期待的更重要的更改。所以我會試試Travis和Grunt,看看會發生什麼。感謝您的觀點。 – theJollySin

2

如果您使用Github來生成網站並顯示它,則無法執行此操作,因爲Github嚴格瞭解它將處理的內容 - 以確保安全。

解決方法是在本地進行編譯和處理,然後將結果輸出推送到gh頁面 - 很高興簡單地託管靜態頁面。

您仍然可以使用github來託管該項目。你只是不使用Github來編譯它。

你的開發過程可能是:

  1. 檢查你是主人和當地的比賽。
  2. 在開發模式下工作。
  3. 建立生產。
  4. 使用grunt或其他程序來縮小/ uglify/etc _site生產文件 - 輸出到單獨的dist(分發)文件夾。
  5. 將dist文件夾的內容推送到您的gh頁面。
  6. 將項目文件的更改提交回主站。

我可能賺不了多少感覺,但也許這個討論也許幫助更多:https://gist.github.com/cobyism/4730490

玩得開心!