Grunt connect (grunt-contrib-connect) livereload: фатальная ошибка: порт 8000 уже используется другим процессом

Я устанавливаю grunt-contrib-watch, а также grunt-contrib-connect жить перезагрузить, вот так:

watch: {
  options: {
    livereload: true,
  },
  files: ['src/**/*'],
  tasks: ['serve']
},
connect: {
  server: {
    options: {
      port: 8000,
      base: './dist',
      hostname: '0.0.0.0',
      protocol: 'http',
      livereload: true,
      open: true,
    }
  }
},

Но я получаю эту ошибку, когда Connect пытается перезагрузить:

Running "connect:server" (connect) task
Fatal error: Port 8000 is already in use by another process.

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

Я не понимаю, как grunt-contrib-connect Сервер может конфликтовать с собственным портом.

Как я могу заставить это работать?

2 ответа

Пара требований:

Убедитесь, что вы еще не запускаете localhost 8000 где-то еще. Если у вас два локальных сервера, работающих на одном порту, он не будет работать. (Проверьте другие вкладки в терминале)

Убедитесь, что в вашем html есть следующее (внизу с остальными js)

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

а затем попробуйте что-то вроде этого:

connect: {
        server: {
            options: {
              port: 8000,
              hostname: 'localhost',
              livereload: 35729,
              open:{
                target: "http://localhost:8000"
              }
            }
        }
    },       
    watch: {
        options: {
          livereload: true,
        },          
        css: {
            files: ['src/**/*'],
            options: {
                spawn: false,
            },
        },
        html: {    
            files: ["**/*.html"]
        }                
    },

Тогда вы можете настроить задачу, если вам это не нравится:

grunt.registerTask("server", ["connect", "watch"]); // Type grunt server -- Creates a server and checks for any changes in the html/css

Оказывается, serve Задача заключалась в том, где я запускал сервер, поэтому он пытался запустить другой сервер каждый раз, когда он перезагружался. Я переключил это на dev задача, при которой сайт был перекомпилирован, но сервер не запускается.

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

Другие вопросы по тегам