Gruntjs Grunt watch:不触发任何任务

Gruntjs Grunt watch:不触发任何任务,gruntjs,grunt-contrib-watch,Gruntjs,Grunt Contrib Watch,我正试图在Grunt的帮助下自动化我的工作流程。我已经把一切都设置好了,但是手表任务不起作用——我可以启动它,但它检测不到变化。问题一定是在watch任务中,因为我可以手动触发sass任务,并且它可以正确编译而没有问题 我的Grunfile看起来像这样: module.exports = function (grunt) { require('load-grunt-tasks')(grunt); grunt.initConfig({ pkg: grunt.fi

我正试图在Grunt的帮助下自动化我的工作流程。我已经把一切都设置好了,但是手表任务不起作用——我可以启动它,但它检测不到变化。问题一定是在watch任务中,因为我可以手动触发sass任务,并且它可以正确编译而没有问题

我的Grunfile看起来像这样:

module.exports = function (grunt) {

    require('load-grunt-tasks')(grunt);

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        sass: {
            dist: {
                options: {
                    'style': 'compressed'
                },
                expand: true,
                cwd: './sass/',
                src: 'style.scss',
                dest: './css/',
                ext: '.css'
            },
            dev: {
                options: {
                    'style': 'expanded',
                },
                expand: true,
                cwd: './sass/',
                src: 'style.scss',
                dest: './css/',
                ext: '.css'
            }
        },

        watch: {
            sass: {
                files: ['<%= sass.dev.src %>'],
                tasks: ['default']
            }
        }
    });

    grunt.registerTask('default', ['sass:dev']);
};
Gruntfile.js
index.html
package.json
css
  > style.css (created by sass task)
node_modules
  > all required modules
sass
  > style.scss

在我看来,一切都很好,但由于它不起作用,一定是出了什么问题。我猜“expand”选项后面的路径是关闭的,尽管我已经尝试了其他也不起作用的结构。

因为
sass.dev.src
等于
src:'style.scss'
。配置了
文件:['']
的监视任务将尝试监视
/style.scss
而不是
/sass/style.scss


监视任务有一个
cwd
选项(
options:{cwd:'./sass'}
),但可能更容易将其设置为监视
文件:['sass/*.scss']

哇,谢谢!这看起来很简单,但我就是找不到那个问题。我猜对于这样一个简单的设置,通常不需要使用
expand
cwd
等,对吗?
expand
对于编译多对多的文件非常有用,而不是多对一的文件。因此,如果您想编译成一个
css/style.css
文件,如您在示例中所做的那样,
expand
是不必要的。在我的设置中,它检测文件更改,但不触发任何任务,有什么建议吗?我注意到指定不存在的任务不会给出警告,但我通过以下方式验证了我的任务是否有效,是否可以从gruntsorry运行: