2013-10-09 7 views
9

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

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']); 

}

ответ

3

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

7

Добавить

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

на страницу, которую вы хотите LiveReload на. 1337 - порт, который вы установили в файле grunt.

options: { 
     livereload: 1337 
}, 
6

Вы можете вручную выключить LiveReload сервер в/в окне терминала Баш так:

curl localhost:35279/kill 

Больше информации здесь: https://github.com/mklabs/tiny-lr

+1

'завиток: (7) Не удалось подключиться к локальный порт 35279: Подключение refused' – frhd

+2

Возможно ли, что вы предназначили для него порт 35729, который является портом по умолчанию для работы с печью? – Abe

1

Я использую хрюкать на бродягу VM, поэтому мне нужно хрюкать для запуска на порту 80, сначала я остановлю apache и начну пользоваться сервисом grunt, и он работает нормально.

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

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

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

0

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

$ 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 должен работать просто отлично :)