2015-09-02 2 views
5

Grunt arbeitet. Aber nach meiner Website-Dateien ein Verzeichnis nach oben zu bewegen, an der Wurzel zu sitzen, hielt Grunzen Arbeit:Grunt Nachricht: Fatal error: Port 35729 ist bereits von einem anderen Prozess

Fatal error: Port 35729 ist bereits von einem anderen Prozess.

Würde der Weg Materie in diesem Fall? Als ich Port 35729 sah, stellte ich fest, dass Grunt der einzige Prozess war, der auf diesem Port lief. Ich tötete diesen Prozess, bestätigte, dass kein anderer Prozess auf 35729 lief, lief dann wieder grunzen, aber immer noch denselben fatalen Fehler wie zuvor.

Obwohl keine meiner Konfigurationsdateien für grunt geändert wurde, da es funktionierte, dachte ich, ich würde versuchen, den "npm init" -Ansatz zu verwenden, um eine neue package.json zu erstellen, dann "npm install" erneut ausführen und bestätigen, dass es heruntergeladen wurde "Knotenmodule" Was kann ich noch versuchen?

Ich bin mit Knoten v0.10.33 auf Mac OS 10.10.5

+0

Zufällige Gedanken, aber ich denke, Sublime Text verwendet den Port 35729, wenn Sie zum Öffnen dann, dass :) töten (oder Sie können es in den Voreinstellungen ändern) – Corbin

+0

Grunt der einzige Prozess auf das ist Hafen. Sublime Text war schon immer ohne Konflikte mit Grunt offen. –

+0

prüfen livereload in Sublime Text: Sublime Text 2> Einstellungen> Paketeinstellungen> Live-Reload> Einstellungen - Benutzer Einfügen in: { "Port": 35730 } – Corbin

Antwort

2

Problem gelöst. Obwohl grunt-cli global installiert ist, wird grunt lokal mit dem Projekt installiert. Also, wenn ich ein Verzeichnis meiner Website Dateien nach oben und lief Grunzen von diesem neuen Standort, ich war effektiv eine zweite Instanz von Grunzen starten, die den Hafen gefunden natürlich schon besetzt, durch die frühere Instanz von Grunzen gestartet, bevor Dateien zu verschieben.

Nachdem ich diesen Prozess getötet, lief Grunzen, ohne ein Problem. Ich konnte es nicht mit kill -9 töten, also benutzte ich den Activity Monitor des Macs, um "Force Quit" auszugeben.

2

Das Problem ist grunt-contrib-watch ‚s Live reload: https://github.com/gruntjs/grunt-contrib-watch/blob/v1.0.0/tasks/lib/livereload.js#L19

Sie können nicht zwei Grunzen-Uhr mit der auf true gesetzt livereload Option. Setzen Sie eine der Optionen livereload auf false oder ändern Sie den Port von liverelaod in einen anderen Wert, indem Sie die Option livereload von true auf einen anderen Wert als 35729 setzen, z. B. live-reload: 1337.

Lesen Sie die Dokumentation für mehr: https://github.com/gruntjs/grunt-contrib-watch#optionslivereload

Ansonsten können Sie so viele Grunzen Prozesse laufen, wie Sie wollen.

9

Stoppen Sie einen Prozess nicht mit Strg + C im Terminal.

Strg + Z wird es am Laufen halten.

Suchen Sie die Prozess-ID von sudo lsof -i: 35729

dann den Prozess von sudo kill kill -9 PID

Rerun das Grunzen beobachten

1

Grunt Uhr bereits in einem anderen Projekt läuft in meinem Fall. Also habe ich Grunts Watch-Aufgabe entsprechend aktualisiert, um Live-Nachladungen auf einem anderen Port zu sehen.

watch: { 
     main: { 
      options: { 
       livereload: 35730, 
       livereloadOnError: false, 
       spawn: false 
      }, 
      files: [createFolderGlobs(['*.js', '*.less', '*.html']), '!_SpecRunner.html', '!.grunt'], 
      tasks: [] //all the tasks are run dynamically during the watch event handler 
     } 
    } 

Angegebene livereload:PORT