繁体   English   中英

在 GitHub Pages 构建期间缩小 JavaScript?

[英]Minify JavaScript during GitHub Pages build?

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

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

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

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

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

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


Jekyll 文档有一个在 Travis 上测试构建的指南 没有提到推动输出。 您将需要 Travis conf 文件中after_success派生类中的脚本。 来自我维护的站点的示例

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

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

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

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

您的开发过程可能是:

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

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

玩得开心!

你可以尝试使用我自己的 minifier https://github.com/Mendeo/jekyll-minifier 它纯粹是写在液体上的,所以你不需要安装任何额外的 gems,它与 GitHub Pages 完全兼容。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM