我正在开发一个Jekyll插件。当我运行jekyll serve
命令时,当我按预期更改任何markdown,html或插件文件时,会重新生成站点文件。我发现的问题是,当重新生成markdown / HTML文件时,插件本身不会重新加载。我必须终止jekyll serve
并再次发出命令以使插件更改生效。有没有办法让插件在更改后自动重新加载?
这是针对Jekyll 3.1.2。
答案 0 :(得分:0)
根据@DavidJacquel的建议和我发现的here的要点,我使用了Gulp和这个gulpfile
'use strict';
var gulp = require('gulp'),
express = require('express'),
spawn = require('child_process').spawn;
var jekyll_file = process.platform === 'win32' ? 'jekyll.bat' : 'jekyll';
gulp.task('jekyll', () => {
var jekyll = spawn(jekyll_file, ['build', '--incremental']);
var output = '';
jekyll.stdout.on('data', (t) => { output += t; });
jekyll.stderr.on('data', (t) => { output += t; });
jekyll.on('exit', (code) => {
if (code)
console.log(`Jekyll exited with code: ${code}\n${output}`);
else
console.log("Finished Jekyll build");
});
});
gulp.task('serve', () => {
var server = express();
server.use(express.static('_site/'));
server.listen(4000);
});
gulp.task('watch', () => {
gulp.watch(['**/*.html', '**/*.md', '_plugins/*.rb', '!_site/**/*'], ['jekyll']);
});
gulp.task('default', ['jekyll', 'serve', 'watch']);
获得理想的效果。还创建了问题here。