grunt watch выполняет задачи несколько раз

У меня есть следующий файл Grunfile.js:

module.exports = function(grunt) {

    // Project configuration.
    grunt.initConfig({

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

        sass: {
            dist: {
                options: {
                    style: 'compressed'
                },
                files: {
                    'css/build/style.css': 'css/style.scss'
                }
            }
        },

        watch: {
            stylesheets: {
                files: ['css/*.scss'],
                tasks: ['newer:sass']
            }
        }

    });

    // Load the plugin that compiles sass
    grunt.loadNpmTasks('grunt-contrib-sass');

    // watch for, and run grunt if files change
    grunt.loadNpmTasks('grunt-contrib-watch');

    // Plugin for Grunt tasks to run with newer files only.
    grunt.loadNpmTasks('grunt-newer');

    // Grunt Tasks:
    grunt.registerTask('default', ['newer:sass']);

};

После запуска grunt watch и сохранения моего файла scss вывод консоли выглядит следующим образом:

Running "watch" task
Waiting...

>> File "css\style.scss" changed.
Running "newer:sass" (newer) task

Running "newer:sass:dist" (newer) task

Running "sass:dist" (sass) task
File css/build/style.css created.

Running "newer-postrun:sass:dist:1:D:\xampp\htdocs\grunt-test\node_modules\grunt-newer\.cache" (newer-postrun) task

Done, without errors.

Проблема в том, что файл .scss компилируется каждый раз. Даже если не было никаких изменений.

Я не понимаю, почему grunt выполняет 3 задачи (новее: sass, новее: sass: dist, sass: dist), а не только задачу, определенную под часами (новее: sass).

Надеюсь, у кого-то есть идея, чтобы исправить это. :)


person emjay    schedule 10.07.2014    source источник


Ответы (1)


Я не уверен, что это проблема, но попробуйте указать, что вы не хотите запускать все sass, а только sass:dist. Так что попробуй: grunt.registerTask('default', ['newer:sass:dist']);

person trial-in-error    schedule 15.07.2014