Unexpected Token illegal mit Vagrant

In meiner privaten Arbeitsumgebung bin ich mittlerweile ein großer Fan des Tools Vagrant geworden. Mit Vagrant kann ich mir blitzschnell eine virtuelle Arbeitsumgebung auf meinem Rechner erstellen und so zum Beispiel verschiedene Linuxdistributionen oder Webserver für mein Projekt testen. Diese bleiben per SSH verwaltbar und können über ein virtuelles Netzwerk aufgerufen werden – wie ein echter Server.

Unexpected Token illegal

Bei der Arbeit mit JavaScript brachte mein Chrome mir allerdings immer wieder diesen Fehler, sobald ich eine Datei editiert habe: Unexpected Token illegal. Ein Workaround war, die vagrant Maschine per vagrant reload jedes mal neu zu starten – auf Dauer natürlich ein absolut unmöglicher Zustand.

Inzwischen habe ich glücklicherweise den Fehler gefunden und einen Weg gefunden, ihn zumindest temporär zu beheben.

Der Bösewicht: sendfile

Sendfile ist eine Methode, Dateien sehr schnell vom Arbeitsspeicher zur Netzwerkkarte zu übergeben. Dadurch verringert sich der Overhead, den der Server leisten muss, um diese Datei an unsere Clients auszuliefern.
In Kombination mit VirtualBox (welches unsere virtuelle Entwicklungsmaschine verwaltet) und den synced Folders (die dafür sorgen, dass die Dateien die wir auf unserer Maschine haben auch in der virtuellen Maschine verfügbar sind) gibt es hier scheinbar noch einen Bug.

Die Lösung

Da wir in einer Entwicklungsumgebung sendfile höchstwahrscheinlich nicht benötigen ist die Lösung relativ simpel:

Wir deaktivieren sendfile.

Wie das funktioniert hängt davon ab, welchen Webserver wir benutzen.

Nginx

Unter Nginx müssen wir in der Datei nginx.conf einfach die folgende Zeile ändern und sendfile mit dem Wert off deaktivieren.

Danach starten wir den Server mit folgendem Befehl neu.

 

Apache

Bei Apache funktioniert es ähnlich. In der Datei httpd.conf suchen wir die Einstellung EnableSendfile und deaktivieren diese mit dem Wert off (standardmäßig ist diese Einstellung hier aktiviert, wir müssen es also explizit ausschalten).

Auch hier müssen wir den Server danach neu starten und schon sind unsere Änderungen übernommen.

 

Tadaa, kein Unexpected Token illegal Fehler mehr.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*