【问题标题】:Jekyll compiling seems WAY too slowJekyll 编译似乎太慢了
【发布时间】:2015-01-07 10:48:43
【问题描述】:

我是第一次使用 Jekyll 构建网站。到目前为止我很喜欢它;我唯一的问题是构建时间过长。现在,当我运行jekyll build 时,生成站点大约需要 30 秒。

30 秒可能看起来不多,但目前,整个网站只有一个帖子、8 个包含、8 个布局和 2 个小插件。据我所知,我没有滥用液体标签,如果我删除插件,它仍然需要很长时间。

在寻找答案时,我只能找到拥有数百篇博文的大型博客的人。由于我只有一个帖子,这显然不是问题 - 这里还有其他事情要花这么长时间。

这是我网站的 github 存储库:https://github.com/keithpickering/kpd/

我的问题如下:

  1. Jekyll 在没有那么多东西可构建的情况下构建如此缓慢的一些可能原因是什么?

  2. 如果 Jekyll 本身就很慢,有没有一种简单的方法可以分别编译我的 CSS 和 JS,让 Jekyll 只处理标记?现在我让 Jekyll 忽略我的“css”和“js”文件夹,而是让 Grunt 自动缩小、前缀和编译这些文件。我以前也从未使用过 Grunt,所以我不知道这是否是我正在使用的某种荒谬的 hacky 解决方案。

感谢您的帮助!

编辑:应该早点提到这一点,但我使用的是 Windows 8.1 x64。我开始认为 Jekyll 对 Windows 的支持不够稳定。

【问题讨论】:

  • 在您的情况下需要存储库地址。
  • 格式是什么:Markdown、Textile、HTML?转换器的版本有哪些(例如 Jekyll、RedCloth、RedCarpet、Kramdown 等)?插件有什么作用?例如,使用旧的 RedCloth,我的 Jekyll 构建非常缓慢,但使用新版本,它们几乎是即时的。如果插件执行速度非常慢,也会影响速度。等等。
  • @DavidJacquel 这是我的仓库,抱歉:github.com/keithpickering/kpd
  • @RudyVelthuis 我正在为我的单个帖子使用 Markdown。 Jekyll 版本是 2.4.0。插件与创建类别页面有关,但就像我说的,删除插件同样慢。我不知道 RedCloth、RedCarpet 或 Kramdown 是什么:p
  • RedCloth 等是标记语言转换器。 RedCloth for Textile、RedCarpet 等用于 Markdown。你在用荧光笔吗?如果是,并且是 pygments,请找出它是哪个版本。

标签: optimization build jekyll


【解决方案1】:

我也遇到了类似的问题,但幸运的是找到了原因和解决方案:

我的 jekyll 设置没有使用任何插件,没有复杂的液体标签,只包含 3 个示例帖子,没有其他内容。但构建网站仍然平均需要 6 秒。

只有当我逐步删除目录中的所有内容时,我才发现导致构建时间过长的原因:node_modules 文件夹。

您可以通过在_config.yml 中输入以下内容,从 jekyll 转换中排除 node_modules 目录:

exclude: [node_modules]

或者:

exclude:
    - node_modules

有关exclude 的更多信息可以在jekyll documentation 中找到。

【讨论】:

  • 这对我也有用,从 20 多岁的时间变成了片刻。
  • 我爱你。这只是救了我的命。从 40 多秒变为 ~1 秒。
  • 为我工作!这应该记录在某处
  • 我真的很爱你。这在任何 jekyll 开发板上都应该是 STICKY!
  • 这对我很有用 - 虽然在我的情况下,我只是在一个我忘记的文件夹中有一堆愚蠢的图像文件。
【解决方案2】:

您只能呈现最新的帖子:

jekyll serve --watch --limit_posts 1

就我而言,它几乎快了两倍。

更新:

更好的是,只重建改变的部分:

jekyll serve --incremental

就我而言,速度提高了 30 倍!不幸的是,它仅适用于博客文章和某些页面。

【讨论】:

  • jekyll serve --incremental - 不敢相信,为什么我不早点看这个问题,我的网站重新生成非常慢(大约 35 秒),现在大约是第二个。
【解决方案3】:

在使用 octopress-minify-html gem 来缩小我的 html 时,我的 Jekyll 构建时间非常慢。

为了加快开发中的构建时间,我将minify_html: false 添加到我的_config.yml 文件中。

这一更改将构建时间从 60 多秒缩短到了约 1 秒 (!)。

【讨论】:

    【解决方案4】:

    我已经使用Benchmark 对一个新的 jekyll 站点和您的存储库进行了基准测试。 同一时间,大约 5 秒。

    问题出在其他地方。我认为您的 ruby​​ / gems 安装有问题。重新安装。

    在资产方面(js、css)Jekyll 擅长(sass、coffeescript),您可以使用jekyll assets 进行缩小和其他优化。此解决方案不存在性能开销问题。

    对于 Grunt/Gulp 也是如此,但这意味着您还要管理 node.js 安装。

    【讨论】:

    • 感谢您的回复,我会尝试重新安装 Ruby 并报告。 Jekyll Assets 看起来很酷;你会说使用它而不是 Grunt 进行缩小/等有什么好处吗?
    • 刚刚卸载并重新安装了 Ruby 以及我所有的 gem。我还将 Jekyll 更新到了最新版本。和以前一样的问题,一切正常,但速度一样慢。
    • 尝试在单独的、功能更强大的计算机上使用 Windows 10、最新版本的 Ruby 和最新版本的 Jekyll 进行编译。需要同样多的时间。我认为 Ruby 和 Jekyll 在 Windows 上运行速度慢得离谱,考虑到几乎每个人都在使用它,这真是太可惜了。
    • 对不起。确实,使用一些开放的 Web 技术,Windows 并不总是那么容易。我确信您可以享受 Ubuntu 14.04 的双启动。花一些时间来学习它,你会爱上它的。
    • 我以前用过 Ubuntu,我没有任何反对意见,但我更愿意使用我选择的操作系统进行开发。
    【解决方案5】:

    Jekyll 在没有那么多东西可构建的情况下构建如此缓慢的一些可能原因是什么?

    在我的例子中,从 ruby​​ 1.9.3-p448 切换到 2.1.3 有很大的不同:在 1.9.3 中重新生成单个文件需要几秒钟,在 2.1.3 中几乎是瞬时的。

    我的设置是:Mac OS X 10.10,50 个帖子和几个小插件,jekyll 2.4.0。

    【讨论】:

    • 我在两台机器上尝试了多个版本的 Ruby。只是 Windows 的某些东西阻碍了与 Ruby 相关的一切。
    猜你喜欢
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2013-05-01
    • 1970-01-01
    相关资源
    最近更新 更多