我对带有监视任务的Connect服务器方法很熟悉,该任务向Jekyll Build发出信号。很好,但是我更喜欢内置的Jekyll Serve,它具有快速的生成速度,而不是生成速度快。
是否可以在Grunt中将Jekyll Serve与Live Reload一起使用?本质上,每次进行更改时,Jekyll Serve都会说“正在重新生成”,您无需刷新即可看到浏览器中的更改。
很高兴也可以使用Chrome Live Reload扩展程序。
注意:我知道可以使用Guard来实现,但是我希望有一个完整的Grunt解决方案。
谢谢!
这是我如何使它工作的:
问题是,既jekyll serve
和grunt 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 watch
和jekyll serve
。另外,我可以使用Ctrl+轻松退出任何一个进程c。
原则上,您可以通过&
在jekyll serve命令的末尾添加an来摆脱一个终端窗口,以便在后台(cd build && jekyll serve --livereload &
)中运行jekyll并watch
在相同的grunt任务中运行,如下所示:
grunt.registerTask(
'dev',
[
'clean',
'assembledev',
'exec:servebg',
'watch'
]
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句