使用Gulp和Jekyll

12

我了解Gulp的哲学思想并想尝试使用它,但是遇到了一点问题。我通常使用Jekyll和Grunt,但不知道如何使Jekyll与Gulp兼容。

我读到了这篇文章,它建议在使用Gulp时不需要Jekyll插件。不幸的是,它并没有真正解释该如何操作,而它所链接的示例并没有对我有所帮助。

是否有人知道如何处理此问题?


2
请澄清一下,“play well”是什么意思?gulp-jekypll将允许您构建。您是否正在寻找一个gulp模块,可以让您运行服务器? - chantastic
@chantastic,我正在寻找一种方法,可以将Jekyll作为我的静态网站生成器,并监视源文件的更改并重新编译,使其输出可在本地服务器上使用。我将不得不查看gulp-jekyll插件,但从您的评论中看来,它似乎只负责构建部分。 - Thijs
据我所知,目前还没有适用于Gulp的工具。如果我发送一个Rake或Grunt解决方案给你,是否合适? - chantastic
@chantastic,我已经有一个很好的Grunt设置,所以不需要提供答案。我不熟悉Rake,所以不确定它对我有多大帮助。无论如何,还是谢谢! - Thijs
4个回答

32

阅读此博客文章:为什么不应该创建一个 Gulp 插件

然后意识到你可以在普通的 Node.js 中轻松触发 Jekyll。 没有必要使用插件。

require('child_process').spawn('jekyll', ['build'], {stdio: 'inherit'});

1
这里是关于child_process spawn的文档,如果有人想要理解这个答案的话(它帮助了我):http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options - davidtheclark

2
作为一个晚到派对的人,我想问一下:
你为什么要将Jekyll与Gulp结合使用? Jekyll已经有一些内置任务,例如编译SCSS到CSS。而且Jekyll本身也可以通过插件进行扩展,例如缩小和前缀处理。所以:在这里可能根本不需要结合两种不同的技术。
一个原因可能是您想发布到GitHub页面(不支持额外插件)。因此,资产管道和Jekyll构建将必须成为两个分离的步骤。在我的情况下,我已经在使用auto-prefixer,我不想回到使用mixins。
在研究和测试中,我找到了不同的Jekyll+Gulp工作流方法:
  1. 作为子进程生成Jekyll,最流行的方法,如Sindre所述, 这里
  2. 并行运行Jekyll serve和Gulp,没有必要将一个集成到另一个中,您也可以让它们并行运行以进行开发
  3. 通过shell命令从Gulp调用Jekyll.pipe(run('bundle exec jekyll build');
大多数人使用Browsersync在本地提供网站,而不是内置的jekyll serve方法。

1
如果您想了解Jekyll gulp插件的样子,请查看gulp-jekyll。如果您认为这个项目比自己生成进程更有用,请发表评论。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接