3
我的Gruntfile出現了一些意想不到的行爲。我註冊了一個如下所示的任務:grunt.registerTask('dev', ['jekyll:server', 'watch:jekyll'])
希望它能夠順序啓動一個jekyll服務器,然後觀察我的項目以瞭解特定的文件更改(使用grunt-contrib-watch
插件)。一旦它檢測到這些變化,它將自動重新運行jekyll:server
。grunt:watch命令在registerTask方法中包含其他任務時永不運行
我遇到的問題是,當我運行grunt dev
時,它將啓動Jekyll服務器,但它不會運行watch
命令。但是,如果我從grunt dev
刪除服務器任務,它將按預期運行watch
命令。
下面是我的Gruntfile的內容。任何人都可以幫助我理解發生了什麼?
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
jekyll: {
server : {
server: true,
server_port: 4000,
exclude: ['node_modules']
},
prod: {
dest: './_site-release'
}
},
watch: {
jekyll: {
files: ['_posts/**/*.md', '_layout/*.html', '_includes/*.html', 'index.html'],
tasks: ['jekyll:server']
}
}
});
grunt.loadNpmTasks('grunt-jekyll');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', 'jekyll:server');
grunt.registerTask('dev', ['jekyll:server', 'watch:jekyll']);
grunt.registerTask('release', 'jekyll:prod');
};
完美,謝謝! – Jon