首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jekyll与Gulp和肝

使用Jekyll与Gulp和肝
EN

Stack Overflow用户
提问于 2014-02-19 14:20:57
回答 2查看 1.5K关注 0票数 2

这个问题向我暗示了如何用Gulp来运行Jekyll。

它可以正常工作,除非我无法触发肝量(但它运行时没有错误)。

我对Node的了解有限,所以我可能遗漏了什么.

代码语言:javascript
复制
var gulp = require('gulp');
var refresh = require('gulp-livereload');
var lr = require('tiny-lr');
var server = lr();

gulp.task('jw', function(){
    var spawn = require('child_process').spawn,
        j     = spawn('jekyll', ['-w', 'build']);

    j.stdout.on('data', function (data) {
        console.log('stdout: ' + data); // works fine
        refresh(server); // doesn’t trigger
    });
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-19 14:37:45

gulp-livereload需要通过gulp.src()或其他乙烯基输入源连接到它的文件。在本例中,我建议gulp-watch监视Jekyll所写的文件,并在此基础上重新加载。

看起来会是这样的:

代码语言:javascript
复制
var gulp = require('gulp');
var refresh = require('gulp-livereload');
var watch = require('gulp-watch');
var lr = require('tiny-lr');
var server = lr();

gulp.task('jw', function(){
    var spawn = require('child_process').spawn,
        j     = spawn('jekyll', ['-w', 'build']);

    j.stdout.on('data', function (data) {
        console.log('stdout: ' + data); // works fine
    });

    watch({glob: '/glob/path/to/jekyll/output'}, function(files) {
        // update files in batch mode
        return files.pipe(refresh(server));
    });
});

只要Jekyll只重写更改过的文件,它就会完美地工作。但是,如果它覆盖了所有内容,那么livereload只会在每次更改时刷新浏览器。

票数 6
EN

Stack Overflow用户

发布于 2016-07-29 13:29:07

您可以在构建结束时触发livereload,使其重新加载页面,从而避免多次刷新:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21883245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档