Часы Grunt не работают меньше после исправления ошибок

У меня проблема с тем, что Grunt Watch не перезапускает задачи после исправления ошибок компиляции.

Я получаю сообщение об ошибке, но после исправления ошибки grunt говорит, что файл был изменен, но после этой задачи не выполняются задачи.

Файл Grunt:

watch: {
        less: {
            files: ['public/assets/less/**/*.less'],
            tasks: ['css'],
            options: {
                atBegin: true,
                nospawn: true
            }
        },
        scripts: {
            files: [
                'public/assets/js/homepage.js'
            ],
            tasks: ['jsApp'],
            options: {
                nospawn: true,
            }
        }
    },

Журнал ошибок:

>> ParseError: Unrecognised input in public/assets/less/template.less on line 114, column 31:
>> 114         @media screen and (max-width: 767px) {
>> 115             left: 0;
Warning: Error compiling public/assets/less/main.less
// ----- Corrected the file here, saved again -----
>> File "public/assets/less/template.less" changed.

Конец файла. Ничего после этого момента.

Ответ 1

Это проблема с функцией появления всплывающих подсказок в роли команды grunt-contrib-watch, вероятно, вы хотите удалить nospawn. Возможно, вы захотите попробовать версию 1.0.0 из ворчащих часов, если вы еще этого не сделали.

Этот вопрос обсуждался ранее https://github.com/gruntjs/grunt-contrib-watch/issues/58

Также обратите внимание на документацию:

Непроисходящие задачи могут сделать часы более склонными к сбою, поэтому пожалуйста, используйте по мере необходимости.

В вашем положении я сначала обновляю, вижу, что у меня есть последняя версия ворчания, ворчащие часы и хрюкать меньше. Если бы это не решило проблему, я бы просто позволил ей нормально появляться.

Ответ 2

Вы можете просто упростить свой файл следующим образом:

//src ===============================
                var src;
                config.src = src = {
                     libFolder       : 'lib/**/*.js',
                     lessFolder      : 'less/**/*.less',

                };

//Watch ===============================
                config.watch = {
                     scripts: {
                        files: ["<%= src.libFolder %>", "<%= src.lessFolder %>"]
                        ,tasks: ["dev", "less:dist"]

                     }
                }

вам нужно вставить задачи и файлы для просмотра:

в этом случае выше grunt просматривает все файлы из папки lib и less, если я что-то поменяю, grunt запустит задачу.

вам также нужно вставить задачи, которые должны выполняться до тех пор, пока вы не остановите просмотр.

В этом случае я запускаю dev и меньше: dist в то же время.

на dev я бегу: 'sprite', 'imagemin', 'concat: dev', 'uglify',

grunt.registerTask('dev',['sprite','imagemin','concat:dev', 'uglify']);

поэтому я вставил эту задачу в грубые часы, поэтому grunt будет следить за запуском всех задач без ошибок.

Надеюсь, это помогло вам.

Ответ 3

У меня точно такая же проблема (комбинация grunt-contrib-watch и grunt-contrib-less).

Одно решение установлено spawn: true, но время сборки увеличивается намного дольше.

Я обнаружил, что эта проблема возникает при использовании последних версий grunt-contrib-less (все версии начиная с версии 1.0.0). Использование grunt-contrib-less 0.12.0 У меня нет проблем с продолжением работы после исправления ошибки.