9

我通过 GitHub Pages 有一个基于 Jekyll-Bootstrap 的静态网站。我的小网站包含大量 JavaScript,为了可维护性,我希望所有 JavaScript 在 GitHub 存储库中保持人类可读。

但对于我网站的最终用户,我更愿意缩小 JavaScript。

有没有办法在 GitHub Pages 构建过程中构建一个挂钩来缩小/丑化 JavaScript,以便最终用户可以下载更小的文件?

4

4 回答 4

9

GitHub 页面构建服务除了 Jekyll安全模式少量包含的插件之外,不能在其上运行任何其他代码。这样做是为了安全。

您最好的选择是使用替代服务来构建您的站点并将结果推送回 GitHub。该站点的源代码将驻留在主分支中,而编译后的源代码将驻留在 gh-pages 中。

这样做的合适服务将是许多 CI 服务之一,例如 Travis CI。这些通常用于在每次推送到存储库时运行软件测试套件,但可用于构建您的网站并将结果推送给您。


Jekyll 文档有一个在 Travis 上测试构建的指南。没有提到推动输出。您需要after_successTravis conf 文件中的衍生脚本。我维护的网站的一个例子

要验证您的推送,脚本需要访问您的 github 个人访问令牌。你不能把它直接放在部署脚本中,因为它是一个秘密。请参阅有关加密环境变量的 Travis 文档。

于 2016-11-21T02:53:20.330 回答
4

如果您使用 Github 生成站点并显示它,则没有选项可以这样做,因为 Github 对它将处理的内容非常严格 - 出于安全考虑。

一种解决方法是在本地进行编译和处理,然后将生成的输出推送到 gh-pages - 这很乐意简单地托管静态页面。

您仍然可以使用 github 来托管项目。你只是不使用 Github 来编译它。

您的开发过程可能是:

  1. 检查你是主人和当地的比赛。
  2. 在开发模式下做你的工作。
  3. 在生产中构建。
  4. 使用 grunt 或其他程序来缩小/丑化/等 _site 生产文件 - 输出到单独的 dist(分发)文件夹。
  5. 将 dist 文件夹的内容推送到您的 gh 页面。
  6. 将对项目文件的更改提交回主服务器。

我可能没有多大意义,但也许这个讨论可能会有所帮助:https ://gist.github.com/cobyism/4730490

玩得开心!

于 2016-11-21T09:04:54.253 回答
1

你可以尝试使用我自己的 minifier https://github.com/Mendeo/jekyll-minifier。它纯粹是在 Liquid 上编写的,因此您不需要安装任何额外的 gem,并且它与 GitHub Pages 完全兼容。

于 2020-12-13T07:52:24.897 回答
-1

Netlify是 GitHub Pages 的替代品,它与 GitHub(甚至是私有仓库)集成,并类似地发布 Jekyll(或其他静态站点生成器)的输出。免费层有一些限制,但大多数个人用户不太可能遇到这些限制。

您应该能够添加此处列出的 Jekyll minifier 插件之一来实现您的目标。这是插件安装说明

如果这对您有用,请添加评论!我很想听听进展如何。

于 2020-01-04T04:06:40.810 回答