Gruntjs 为什么不在GrunFile中为监视任务设置'task'选项?

Gruntjs 为什么不在GrunFile中为监视任务设置'task'选项?,gruntjs,grunt-contrib-watch,Gruntjs,Grunt Contrib Watch,在Grunfile.js中,我看到了如下代码: watch: { jsTest: { files: ['test/spec/{,*/}*.js'], tasks: ['newer:jshint:test', 'karma'] }, gruntfile: { files: ['Gruntfile.js'] }, livereload: { options: { livereload: '<%= connect.options.li

在Grunfile.js中,我看到了如下代码:

watch: {
 jsTest: {
    files: ['test/spec/{,*/}*.js'],
    tasks: ['newer:jshint:test', 'karma']
  },
  gruntfile: {
    files: ['Gruntfile.js']
  },
  livereload: {
    options: {
      livereload: '<%= connect.options.livereload %>'
    },
    files: [
      '<%= yeoman.app %>/{,*/}*.html',
      '.tmp/styles/{,*/}*.css',
      '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
    ]
  }
},
观察:{
jsTest:{
文件:['test/spec/{,*/}*.js'],
任务:['newer:jshint:test','karma']
},
Grunfile:{
文件:['grunfile.js']
},
利弗雷罗德:{
选项:{
livereload:'
},
档案:[
'/{,*/}*.html',
“.tmp/styles/{,*/}*.css”,
“/images/{,*/}*{png,jpg,jpeg,gif,webp,svg}”
]
}
},
我真的不明白这部分

Grunfile:{ 文件:['grunfile.js'] },

以及以下
livereload
部分

它似乎想查看
grunfile.js
,但没有为其分配任何
任务
选项。因此,当
Gruntfile.js
被更改时,不会发生任何事情。。那么,将其添加到
watch
列表中有什么意义

它们在0.4.0版中允许在
grunfile.js
文件更改时重新加载所有Grunt配置。为此,不能指定任何任务

换句话说,如果您要指定
tasks
选项,那么Grunt在更改时不会重新加载自己的配置。按照您的方式,当Gruntfile.js本身发生更改时,所有配置都将更新


例如,如果您正在观看一些JS文件,并且您更改了
jsTest
任务的配置(例如,您添加了一个新的要观看的文件文件夹),然后,因为您也在观看
Gruntfile.js
您的新
jsTest
配置将自动重新加载,而无需停止和启动
watch
任务。

您介意用示例解释此功能的用途吗?我在底部添加了一个更好的示例。如果你还有其他问题,请告诉我。