lem*_*emp 2 jekyll livereload gulp
这个问题暗示了我如何与Gulp一起运行Jekyll.
它工作正常,除了我无法触发livereload(但它运行没有错误).
我对Node的了解有限,所以我可能会遗漏一些东西......
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
});
});
Run Code Online (Sandbox Code Playgroud)
gulp-livereload需要通过gulp.src()其他乙烯基输入源传输的文件.在这种情况下,我建议添加gulp-watch以监视Jekyll写入的文件,并根据该文件重新加载.
它看起来像这样:
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));
});
});
Run Code Online (Sandbox Code Playgroud)
只要Jekyll只重写已更改的文件,这将完美地工作.但是,如果它覆盖了所有内容,那么livereload只会在每次更改时刷新浏览器.
| 归档时间: |
|
| 查看次数: |
1491 次 |
| 最近记录: |