简体   繁体   中英

Grunt watch Running "watch" task Waiting

I have a problem with grunt-watch. When I use "grunt" in terminal outputs "Running "watch" task Waiting..."

krp-arina@krparina-Lenovo-G555:~/server$ grunt
Running "watch" task
Waiting...
krp-arina@krparina-Lenovo-G555:~/server$ grunt -v
Initializing
Command-line options: --verbose

Reading "Gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.

Registering "grunt-contrib-less" local Npm module tasks.
Reading /home/krp-arina/server/node_modules/grunt-contrib-less/package.json...OK
Parsing /home/krp-arina/server/node_modules/grunt-contrib-less/package.json...OK
Loading "less.js" tasks...OK
+ less

Registering "grunt-contrib-watch" local Npm module tasks.
Reading /home/krp-arina/server/node_modules/grunt-contrib-watch/package.json...OK
Parsing /home/krp-arina/server/node_modules/grunt-contrib-watch/package.json...OK
Loading "watch.js" tasks...OK
+ watch
Reading package.json...OK
Parsing package.json...OK
Initializing config...OK
Loading "Gruntfile.js" tasks...OK
+ default, w

No tasks specified, running default tasks.
Running tasks: default

Running "default" task

Running "watch" task
Waiting...
Verifying property watch exists in config...OK

But this does nothing, it just ends.

I want to compile less at each change. Here's my Gruntfile.js

module.exports = function(grunt) {
  require('load-grunt-tasks')(grunt);
  // Project configuration.

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    less: {
      dist:{
        files: {
          'pd_wp/www/wp-content/themes/anarchy/css/commons.css':'pd_wp/www/wp-content/themes/anarchy/css/commons.less'
        },
        options: {
          compress: true,
          cleancss: false
        }
      }
    },
    watch: {
      options: {
        less: {
          files: ['pd_wp/www/wp-content/themes/anarchy/css/*.less'],
          tasks: ['less'],
          // options: {
          //   spawn: false
          // }
        }
      }
    }
  });


  // Default task(s).
  grunt.registerTask('w', ['watch']);
  grunt.registerTask('default', ['watch']);

};

I use grunt-cli v0.1.13 grunt v0.4.5 grunt-contrib-less v1.0.0 grunt-contrib-watch v0.6.1 load-grunt-tasks v3.1.0

nodejs v0.12.1

Somebody tell me what am I doing wrong

I'm pretty sure your issue here is the order of your json config. I may be wrong though. The docs list watch: { taskName: { options: {} } }

and you have

watch: { options: { taskName: {} } }

have you tried this:

watch: {
      less: {
          files: ['pd_wp/www/wp-content/themes/anarchy/css/*.less'],
          tasks: ['less']
      }
  }

grunt-contrib-watch docs

You have to specify a task example:

grunt postcss

If you are not sure, invoke grunt -help:

 grunt -help Grunt: The JavaScript Task Runner (v0.4.5) Usage grunt [options] [task [task ...]] Options --help, -h Display this help text. --base Specify an alternate base path. By default, all file paths are relative to the Gruntfile. (grunt.file.setBase) * --no-color Disable colored output. --gruntfile Specify an alternate Gruntfile. By default, grunt looks in the current or parent directories for the nearest Gruntfile.js or Gruntfile.coffee file. --debug, -d Enable debugging mode for tasks that support it. --stack Print a stack trace when exiting with a warning or fatal error. --force, -f A way to force your way past warnings. Want a suggestion? Don't use this option, fix your code. --tasks Additional directory paths to scan for task and "extra" files. (grunt.loadTasks) * --npm Npm-installed grunt plugins to scan for task and "extra" files. (grunt.loadNpmTasks) * --no-write Disable writing files (dry run). --verbose, -v Verbose mode. A lot more information output. --version, -V Print the grunt version. Combine with --verbose for more info. --completion Output shell auto-completion rules. See the grunt-cli documentation for more information. Options marked with * have methods exposed via the grunt API and should instead be specified inside the Gruntfile wherever possible. Available tasks sass Compile Sass to CSS * postcss Process CSS files. * watch Run predefined tasks whenever watched files change. default Alias for "watch" task. Tasks run in the order specified. Arguments may be passed to tasks that accept them by using colons, like "lint:files". Tasks marked with * are "multi tasks" and will iterate over all sub-targets if no argument is specified. The list of available tasks may change based on tasks directories or grunt plugins specified in the Gruntfile or via command-line options. For more information, see http://gruntjs.com/

Here is the runtime example of postcss

 francoisgravel@LMSD-FGRAVEL vistage-mv3 % grunt postcss Running "postcss:dist" (postcss) task Browserslist: caniuse-lite is outdated. Please run next command `npm update` >> 1 processed stylesheet created. Done, without errors.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM