Grunt watch配置选项"重新加载:true"不会发现变化

时间:2016-12-12 18:48:03

标签: javascript gruntjs grunt-contrib-watch

我的设置有Gruntfile.js,可以从单个文件加载任务,其中一个是all_sass.js。我希望grunt watch正在运行,对all_sass.js进行更改,并且无需手动停止/启动grunt watch即可查看这些更改。

正如我现在所知,终端告诉我,咕噜咕噜的手表可以"看到"当我改变all_sass.js时:

OK
>> File "grunt/tasks/all_sass.js" changed.

但它实际上并没有重新加载任务或重新启动grunt watch。它继续以与最初观看的文件相同的行为运行。

Gruntfile.js:

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

    grunt.initConfig({
        watch: {
            configFiles: {
                files: ['Gruntfile.js', 'grunt/tasks/*.js'],
                options: {
                    reload: true
                }
            }
        }
    });

    // Load all tasks from the grunt/tasks folder
    grunt.loadTasks('grunt/tasks');

    grunt.registerTask('default', ['allSass']);
};

咕噜/任务/ all_sass.js:

module.exports = function(grunt) {
    var scssPath = 'dest/scss';
    var cssPath = 'dest/css';

    // Config
    grunt.config.set('allSass', {
        scssPath: scssPath,
        cssPath: cssPath
    });

    // sass
    grunt.config.set('sass.allSass', {
        options: {
            outputStyle: 'compressed'
        },
        files: [{
            expand: true,
            cwd: '<%= allSass.scssPath %>',
            src: ['**/*.scss'],
            dest: '<%= allSass.cssPath %>',
            ext: '.css'
        }]
    });

    // watch
    grunt.config.set('watch.allSass', {
        files: ['<%= allSass.scssPath %>/**/*.scss'],
        tasks: ['allSass'],
        options: {
            spawn: false
        }
    });

    grunt.registerTask('allSass', 'Compile sass', [
        'sass:allSass'
    ]);
};

我有什么想法可以让它发挥作用吗?

0 个答案:

没有答案