Jekyll编译似乎太慢了

时间:2014-11-11 00:32:23

标签: optimization build 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解决方案。

  3. 感谢您的帮助!

    编辑:我们应该早点提到这个,但我在Windows 8.1 x64上。我开始认为Jekyll对Windows有不稳定的支持。

5 个答案:

答案 0 :(得分:42)

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

我的jekyll设置没有使用任何插件,没有复杂的液体标签,只包含3个样本帖子,没有别的。但是建立网站平均需要6秒钟。

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

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

exclude: [node_modules]

或者:

exclude:
    - node_modules

有关exclude的更多信息,请参阅jekyll documentation

答案 1 :(得分:6)

您只能呈现最新帖子:

jekyll serve --watch --limit_posts 1

在我的情况下,它几乎快了两倍。

更新:

更好的是,只重建改变的内容:

jekyll serve --incremental

在我的情况下,速度提高了30倍!不幸的是,仅适用于博客文章和一些页面。

答案 2 :(得分:2)

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

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

这一次改变使构建时间从60秒增加到约1秒(!)。

答案 3 :(得分:1)

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

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

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

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

答案 4 :(得分:1)

  

当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。