2016-04-08 21 views
0

我正在開發一個Jekyll插件。當我運行jekyll serve命令時,按預期更改任何降價,html或插件文件時,將重新生成站點文件。我發現的問題是,雖然markdown/HTML文件被重新生成,但插件本身不會被重新加載。我必須終止jekyll serve並再次發出命令才能使插件更改生效。有沒有一種方法可以讓插件在更改後自動重新加載?使用`jekyll serve`時重新加載插件

這是用於Jekyll 3.1.2。

+0

你可以搜索Gulp服務和觀看,它會做的伎倆。 –

+0

試試'jekyll serve --watch' –

+0

@DavidJacquel謝謝,我想我會走這條路線,一旦完成就發佈我的腳本。 –

回答

0

基於從@DavidJacquel的建議,我發現here要點,我用咕嘟咕嘟這個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

相關問題