【问题标题】:Can a Jekyll plugin / generator be disabled for non-production environment?可以为非生产环境禁用 Jekyll 插件/生成器吗?
【发布时间】:2020-01-14 07:45:12
【问题描述】:

我有一个自定义的generator,用于为我的Jekyll 博客创建存档页面(每年、每月和每天)。但是该生成器需要一些时间,我可以为非生产环境禁用生成器,或者从配置中的插件条目禁用生成器吗?

更新:插件只是放在_plugins文件夹中,它不是作为gem包交付/分发的!

我正在寻找一种用于开发环境的生成器(也可能还有过滤器或其他插件)的黑名单,以节省构建时间。

【问题讨论】:

标签: jekyll liquid jekyll-extensions


【解决方案1】:

本地插件

要切换本地插件,您可以使用两个不同的文件夹,并通过覆盖您的plugins_dir 的多个配置文件的组合在它们之间切换。

您可以在_config-dev.yml 文件中为plugins_dir 字段设置不同的值,这将覆盖您在_config.yml 中的值(或默认_plugins,如果未设置):

$ bundle exec jekyll build --config _config.yml,_config-dev.yml

这样您就可以拥有两个文件夹,分别存放您的开发插件和生产插件。当您在两种环境中使用插件时,这会产生维护成本。


Gemfile 插件

要切换基于 gem 的插件,您可以使用不同的 Gemfile 进行开发,而无需生产插件:

BUNDLE_GEMFILE=Gemfile-dev bundle exec jekyll build

这以维护两个文件为代价为您提供了很大的灵活性。您需要确保两者的插件版本相同。

或者,您可以使用额外的配置文件进行开发。您将为_config-dev.yml 文件中的plugins 字段设置不同的值,这将覆盖_config.yml 中的值。您需要确保您的插件未设置在您的 Gemfile:jekyll_plugins 组中才能正常工作(因为这会缩短配置设置):

$ bundle exec jekyll build --config _config.yml,_config-dev.yml

一般性能

如果您的网站有大量帖子,那么在开发时处理较少的帖子可能会为您节省最大的时间。您可以使用limit_posts 命令行选项 (https://jekyllrb.com/docs/configuration/options/#build-command-options) 执行此操作:

$ bundle exec jekyll build --limit_posts 5

对于一般的构建时间改进,我强烈建议您分析您的网站以找到最佳优化位置:

$ bundle exec jekyll build --profile

【讨论】:

  • 谢谢,我会测试你的建议。 --limit_posts 5 是如何工作的?该限制是否仅显示最新的 5 个帖子,或者我如何操纵范围?
  • 插件不在Gemfile 靠近该区域group :jekyll_plugins do ... 内,它只是在_plugins 文件夹中。我也会更新我的问题。
  • 我已经编辑了答案以包含本地插件的解决方案。我相信最好的办法是在两个环境中运行相同的插件,并尽可能提高总体构建速度。
  • config.yml 中plugins_dir 不同的想法听起来很不错。这里是docu,我会检查它是否正常工作。这两个 GEMFILES 更加努力
猜你喜欢
  • 2020-10-12
  • 2015-10-15
  • 1970-01-01
  • 2010-12-19
  • 2011-05-13
  • 2011-08-31
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多