2016-04-08 10 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を作成しました。

関連する問題