Задача grunt-php, открывающая несколько экземпляров браузера

Я создаю Gruntfile.js. Я пытаюсь создавать задачи для ответа на запросы php.

Другие задачи включают живую компиляцию compass / sass и live-reload. Я наткнулся на интересную загвоздку:

Когда я начинаю хрюкать, я вижу в терминале, что задачи слежения выполняются, и что работает php-сервер: я получаю в терминале сообщения о том, что определенные файлы не на месте.

Теперь вот что ... через пару секунд после того, как я начинаю хрюкать, начинают открываться окна firefox. (Я запускаю задачу вообще без запущенного firefox. Обычно я использую хром и хром).

Открываются новые окна. Иногда появляются сообщения ff о сбоях Firefox. Я также получаю всплывающие окна, сообщающие мне, что мой профиль ff недоступен - этого я и ожидал, если попробую запустить firefox с терминала, когда ff уже запущен.

Они продолжают появляться, пока я не перестаю бежать. Все они закрываются сразу же, когда я останавливаю задачу, нажав Ctrl-c в терминале.

Что может быть причиной этого?

Вот мой gruntfile

module.exports = function (grunt){
grunt.initConfig({

    compass : {
        dist : {
            options : {
                cssDir : 'css',
                sassDir : 'sass',
                debugInfo : true
            }
        }
    },

php :{      
    dist : { 
    options : {
        keepalive : true,
        port: 9000
    }
    },
    watch : {
    files : ['*.html',  '*.php',  'js/*', 'sass/*', 'css/*'],
    tasks : ['compass'],
    options : {
                livereload: true
    }
        }           
},      

});

grunt.loadNpmTasks('grunt-php');
grunt.loadNpmTasks('grunt-contrib-watch');    
grunt.loadNpmTasks('grunt-contrib-compass');   
grunt.registerTask('default', ['php', 'watch']) ;

} ;

person davedave    schedule 07.03.2014    source источник


Ответы (1)


В вашей watch задаче указано, что вы хотите использовать livereload - так что это (отчасти) ожидаемое, не так ли?

Посмотреть здесь:

person Mangled Deutz    schedule 07.03.2014
comment
Не на самом деле нет. Раньше я создавал задачи наблюдения, которые вызывают livereload, и никогда не ожидал и не видел такого поведения. Я не думаю, что функция livereload предназначена для открытия большого количества окон браузера. - person davedave; 07.03.2014
comment
Согласовано. Тем не менее, что произойдет, если вы удалите livereload из параметров часов? В зависимости от результата, можете ли вы упростить свой тестовый пример, чтобы (очевидно) ошибку в watch / livereload было легче воспроизвести? - person Mangled Deutz; 07.03.2014
comment
Иначе говоря: мне кажется, что firefox / livereload настроен неправильно - или эти часы делают что-то неприятное с livereload. - person Mangled Deutz; 07.03.2014