grunt watch livereload Неустранимая ошибка: порт 35279 уже используется другим процессом

Я пытаюсь использовать livereload с часами. Я постоянно получаю сообщение «Фатальная ошибка: порт 35279 уже используется другим процессом». Я изменил порт на livereload, но тогда ничего не перезагружается.

module.exports = function(grunt) {
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    compass: {
      dist: {
        options: {
          cssDir: 'stylesheets',
          sassDir: 'stylesheets/sass/',
          imagesDir: 'images',
          javascriptsDir: 'scripts',
          require: ['sass-globbing','modular-scale'],
          force: true
        }
      }
    },
    cssmin: {
      minify: {
        expand: true,
        cwd: 'stylesheets',
        src: ['*.css', '!*.min.css'],
        dest: 'stylesheets',
        ext: '.min.css'
      }
    },
    watch: {
        options: {
            livereload: true
        },
        sass: {
            files: 'stylesheets/sass/*.scss',
            tasks: ['compass']
        },
        css: {
            files: 'stylesheets/*.css',
            tasks: ['cssmin']
        },
        html: {
            files: ['index.html','**/*.css']
        }
    }
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.registerTask('default',['compass','watch']);

}


person user2808895    schedule 09.10.2013    source источник


Ответы (5)


Добавлять

 <script src="//localhost:1337/livereload.js"></script>

на страницу, на которую вы хотите загрузить livereload. 1337 — это порт, который вы установили в файле grunt.

options: {
        livereload: 1337
},
person xphong    schedule 03.01.2014

Вы можете вручную отключить сервер livereload в окне bash/терминала следующим образом:

curl localhost:35279/kill

Подробнее здесь: https://github.com/mklabs/tiny-lr.

person user3259967    schedule 01.02.2014
comment
Возможно ли, что вы имели в виду порт 35729, который является портом по умолчанию для livereload? - person Abe; 01.04.2015

Вы используете Sublime Text и пакет LiveReload? Известно, что это вызывает эту проблему. Если это так, отключите или удалите пакет в Sublime Text.

person eldh    schedule 29.10.2013

Я использую grunt на бродячей виртуальной машине, поэтому мне нужно, чтобы grunt работал на порту 80, сначала я остановлю apache и запущу grunt serve, и он отлично работает.

Однако иногда grunt по какой-то причине не освобождает порт после остановки. Например: обычно я останавливаю grunt, чтобы отредактировать Gruntfile.js, и запускаю его снова, но иногда он не запускается и жалуется на то, что кто-то использует порт 80.

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

Я использую ZSH, и я заметил, что после перерывов в ворчании, если я пытаюсь выйти из оболочки, ZSH жалуется на «ожидающие задания», но если я все равно выйду, перезапущу сеанс и снова попробую ворчать, это сработает.

person San Bluecat    schedule 28.09.2015

Если вы хотите завершить процесс, используя порт, вы можете сделать следующее:

$ lsof -n -i4TCP:35729
COMMAND   PID      USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node    15723  testuser   24u  IPv6 0x71823b3990749ea5      0t0  TCP *:35729 (LISTEN)

Теперь у вас есть PID процесса, который прослушивает порт, к которому вы пытаетесь получить доступ, поэтому вы можете убить его с помощью

$ kill -9 15723

и теперь запуск grunt должен работать нормально :)

person Ryan Atallah    schedule 02.12.2015