当文件被添加、更改或删除时,运行预定义的任务
安装插件
npm install grunt-contrib-watch --save-dev
安装完插件后,可以在Gruntfile中用这行代码启用插件
grunt.loadNpmTasks('grunt-contrib-watch')
可以使用grunt watch命令启动这个任务
配置:
files:(type:String|Array)定义了这个任务将要监视的文件,可以为一个路径字符串或者一个字符串的数组.
tasks:(type:String|Array)这定义了当监视的文件事件发生时要运行的任务
options.spawn:(type:Boolean)默认会创建一个新的子进程来执行触发的任务。通过设置为 false,可以使得触发的任务可以共享进程上下文,并且提高速度。但是,这会导致监控任务容易崩溃,所以,请尽量使用这个特性,在新的子进程中执行任务
options.interrupt:(type:Boolean)在文件发生修改的时候,会生成子进程来执行任务,默认的行为是对于每个目标来说,在上一个处理完成之后,仅仅生成一个新的子进程来执行任务。设置 interrupt 为 true,将会导致中止上一个进程,生成一个新进程来处理最后的变更
options.debounceDelay:(type:Integer)如果同样的文件或者路径被修改,需要等待多长时间才触发事件。默认 500 毫秒
options.event:(type:String|Array)指定监控目标的特定事件类型,可以为 'all', 'changed', 'added' 和 'deleted'
options.reload:(type:Boolean)默认情况下,如果 Gruntfile.js 文件被监控,在这个文件被修改之后,会导致监控任务重新启动。并且重新加载 Gruntfile.js。如果 reload 设置为 true,任何被监控文件的修改都会导致监控任务重新启动。除非你的 Gruntfile.js 依赖于其它文件,否则不使用这个参数
options.forever:(type:Boolean)这是整个任务级别的参数,不能在单个目标上配置。默认情况下,监控任务会处理 grunt.fatal 和 grunt.warn ,防止导致的退出监控问题。如果你不希望监控任务覆盖 grunt.fatal 和 grunt.warn ,可以将 forever 设置为 false
options.dateFormat:(type:Function)这是一个任务级别的参数,不能在单个目标上配置。默认情况下,当watch完成任务时,它将显示消息Completed in 1.301s at Thu Jul 18 2013 14:58:21 GMT-0700 (PDT) - Waiting...您可以通过提供自己的函数来覆盖此消息
options.atBegin:(type:Boolean)此选项将在监视器启动时触发每个指定任务的运行
options.livereload:(type:Boolean|Number|Object)设置为true或设置为端口号以启动实时加载,默认和推荐的端口号是35729
如果启用了一个实时重新加载服务器,则将启动每个目标的watch任务。然后在指定的任务运行后,将通过修改的文件触发实时重新加载服务器
options.cwd:(type:String|Object)能够设置当前工作目录。默认为process.cwd()。可以是一个字符串,以设置cwd来匹配文件和生成任务或一个对象来独立设置
options.livereloadOnError:(type:Boolean)如果执行的任务遇到错误,则可以防止实时重新启动。如果设置为false,则只有当所有任务成功完成时,才会触发活动载入。