我通过 GitHub Pages 有一个基于 Jekyll-Bootstrap 的静态网站。我的小网站包含大量 JavaScript,为了可维护性,我希望所有 JavaScript 在 GitHub 存储库中保持人类可读。
但对于我网站的最终用户,我更愿意缩小 JavaScript。
有没有办法在 GitHub Pages 构建过程中构建一个挂钩来缩小/丑化 JavaScript,以便最终用户可以下载更小的文件?
我通过 GitHub Pages 有一个基于 Jekyll-Bootstrap 的静态网站。我的小网站包含大量 JavaScript,为了可维护性,我希望所有 JavaScript 在 GitHub 存储库中保持人类可读。
但对于我网站的最终用户,我更愿意缩小 JavaScript。
有没有办法在 GitHub Pages 构建过程中构建一个挂钩来缩小/丑化 JavaScript,以便最终用户可以下载更小的文件?
GitHub 页面构建服务除了 Jekyll安全模式和少量包含的插件之外,不能在其上运行任何其他代码。这样做是为了安全。
您最好的选择是使用替代服务来构建您的站点并将结果推送回 GitHub。该站点的源代码将驻留在主分支中,而编译后的源代码将驻留在 gh-pages 中。
这样做的合适服务将是许多 CI 服务之一,例如 Travis CI。这些通常用于在每次推送到存储库时运行软件测试套件,但可用于构建您的网站并将结果推送给您。
Jekyll 文档有一个在 Travis 上测试构建的指南。没有提到推动输出。您需要after_success
Travis conf 文件中的衍生脚本。我维护的网站的一个例子。
要验证您的推送,脚本需要访问您的 github 个人访问令牌。你不能把它直接放在部署脚本中,因为它是一个秘密。请参阅有关加密环境变量的 Travis 文档。
如果您使用 Github 生成站点并显示它,则没有选项可以这样做,因为 Github 对它将处理的内容非常严格 - 出于安全考虑。
一种解决方法是在本地进行编译和处理,然后将生成的输出推送到 gh-pages - 这很乐意简单地托管静态页面。
您仍然可以使用 github 来托管项目。你只是不使用 Github 来编译它。
您的开发过程可能是:
我可能没有多大意义,但也许这个讨论可能会有所帮助:https ://gist.github.com/cobyism/4730490
玩得开心!
你可以尝试使用我自己的 minifier https://github.com/Mendeo/jekyll-minifier。它纯粹是在 Liquid 上编写的,因此您不需要安装任何额外的 gem,并且它与 GitHub Pages 完全兼容。