Jon*_*Jon 3 jekyll gruntjs grunt-contrib-watch
我的Gruntfile有一些意想不到的行为.我已经注册了一个看起来像这样的任务:grunt.registerTask('dev', ['jekyll:server', 'watch:jekyll'])希望它会顺序启动一个jekyll服务器,然后观察我的项目是否有特定的文件更改(使用grunt-contrib-watch插件).一旦检测到这些更改,它就会jekyll:server自动重新运行.
我遇到的问题是,当我运行时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');
};
Run Code Online (Sandbox Code Playgroud)
该server选项使得任务阻止,因为它是持久的.您可以使用tasks watch选项或类似grunt-concurrent来运行jekyll和watch并发:
grunt.initConfig({
concurrent: {
target: {
tasks: ['jekyll:server', 'watch'],
options: {
logConcurrentOutput: true
}
}
}
});
grunt.loadNpmTasks('grunt-concurrent');
grunt.registerTask('default', ['concurrent:target']);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
753 次 |
| 最近记录: |