【问题标题】:Use Jekyll with Gulp使用 Jekyll 和 Gulp
【发布时间】:2014-02-13 03:56:43
【问题描述】:

我读过 Gulp 并被其哲学所吸引。我想自己尝试一下,但我遇到了一个小问题。我习惯于将 Jekyll 与 Grunt 一起使用,但我不知道如何让 Jekyll 与 Gulp 配合得很好。

我遇到过this 文章,该文章表明使用 Gulp 时不需要 Jekyll 插件。不幸的是,它并没有真正解释如何去做,它链接到的 example 对我没有多大帮助。

有没有人知道怎么做?

【问题讨论】:

  • 澄清一下,“玩得好”是什么意思? gulp-jekypll 将允许您构建。你在寻找一个允许你运行服务器的 gulp 模块吗?
  • @chantastic 我正在寻找一种方法让 Jekyll 作为我的静态站点生成器,让它监视源文件的更改并重新编译并使其输出在本地服务器上可用。我将不得不查看 gulp-jekyll 插件,但从您的评论看来,它只是负责构建部分。
  • 据我所知,gulp 还没有工具。如果我通过 Rake 或 Grunt 解决方案向您发送答案,是否合适?
  • @chantastic,我有一个适合我的 Grunt 设置,因此无需为此提供答案。我不熟悉 Rake,所以我不确定它对我有多大用处。还是谢谢!

标签: jekyll gulp


【解决方案1】:

阅读这篇博文:Why you shouldn’t create a gulp plugin

然后意识到您可以轻松地在 vanilla Node.js 中触发 Jekyll。不需要插件。

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

【讨论】:

  • 这是关于 child_process spawn 的文档,以防他们帮助任何人理解这个答案(它帮助了我):nodejs.org/api/…
【解决方案2】:

聚会迟到了,我想问一下:
为什么要将 Jekyll 和 Gulp 结合起来?

Jekyll 已经有一些内置任务,例如将 SCSS 编译为 CSS。 Jekyll 本身也可以通过插件进行扩展,例如缩小和前缀。所以:您可能根本不需要在这里结合两种不同的技术。

一个原因可能是,您想要发布到 GitHub 页面(不支持额外的插件)。因此,资产流水线和 Jekyll 构建必须成为两个独立的步骤。就我而言,我已经在使用auto-prefixer,我不想再使用mixins

在研究和测试这个时,我发现了 Jekyll+Gulp 工作流的不同方法:

  1. 将 Jekyll 作为子进程生成,最流行,如 Sindre 所述, here
  2. Jekyll serve 和 Gulp 并行运行,不需要相互集成,也可以并行开发
  3. 通过 shell 命令从 Gulp 调用 Jekyll.pipe(run('bundle exec jekyll build');Source

那时,大多数人都使用 Browsersync 在本地为站点提供服务,而不是内置的 jekyll serve 方法。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      我刚刚试用了这个 YO 生成器,效果很好: https://www.npmjs.org/package/generator-jekyllized

      Gulp+Jekyll+SASS

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-22
        相关资源
        最近更新 更多