Grunt手表:不会触发任何任务

时间:2014-05-04 10:04:21

标签: gruntjs grunt-contrib-watch

我想在Grunt的帮助下自动化我的工作流程。我已经完成了所有设置,但是监视任务不起作用 - 我可以启动它,但它不会检测到更改。问题确实必须出现在监视任务中,因为我可以手动触发sass任务,并且可以正确编译而没有问题。

My Gruntfile如下所示:

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

对我而言,一切看起来都不错,但由于它不起作用,一定是错的。我的猜测是“扩展”选项后面的路径已经关闭,尽管我已经尝试过其他不起作用的结构。

1 个答案:

答案 0 :(得分:2)

因为sass.dev.src等于src: 'style.scss'。使用files: ['<%= sass.dev.src %>']配置的观看任务将尝试观看./style.scss ./sass/style.scss

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