与Jekyll服务的咕ky声,实时重载

里斯

我对带有监视任务的Connect服务器方法很熟悉,该任务向Jekyll Build发出信号。很好,但是我更喜欢内置的Jekyll Serve,它具有快速的生成速度,而不是生成速度快。

是否可以在Grunt中将Jekyll Serve与Live Reload一起使用?本质上,每次进行更改时,Jekyll Serve都会说“正在重新生成”,您无需刷新即可看到浏览器中的更改。

很高兴也可以使用Chrome Live Reload扩展程序。

注意:我知道可以使用Guard来实现,但是我希望有一个完整的Grunt解决方案。

谢谢!

索恩

这是我如何使它工作的:

问题是,既jekyll servegrunt watch需要并行运行。我要做的是创建两个艰巨的任务,并在两个单独的终端窗口中运行它们。我有以下设置:

  • _src,我编辑原始源文件目录
  • asset我有图像等目录
  • build由grunt填充目录,在其中运行jekyll

首先,我运行grunt dev任务。此任务首先删除构建目录,然后复制必要的源文件,最后将cds复制到我的构建目录中,并调用jekyll:

cd build && jekyll serve --livereload

此任务配置如下:

grunt.registerTask(
  'assembledev',
  [
    'copy:src',
    'copy:assets'
  ]
);
grunt.registerTask(
  'dev',
  [
    'clean',
    'assembledev',
    'exec:serve'
  ]
);

然后,在另一个终端中,运行grunt watch手表的配置如下:

watch {
  src: {
    files: ['{_src,assets}/**/*.{js,css,html,php}'],
    tasks: ['assembledev']
  }
}

现在,每当我更改源文件时,更新的文件都将被复制到构建目录,然后被jekyll识别为已更改的文件。

这两个终端窗口觉得自己像一个黑客位,但这样的,我可以看到两者的输出grunt watchjekyll serve另外,我可以使用Ctrl+轻松退出任何一个进程c

原则上,您可以通过&在jekyll serve命令的末尾添加an摆脱一个终端窗口,以便在后台(cd build && jekyll serve --livereload &)中运行jekyllwatch在相同的grunt任务中运行,如下所示:

grunt.registerTask(
  'dev',
  [
    'clean',
    'assembledev',
    'exec:servebg',
    'watch'
  ]
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章