It’s #FrontendFriday – Lokales Filehosting leichtgemacht mit Node.js und http-server

15.01.2021

Ein frohes neues Jahr noch an alle Leser. Das neue Jahr hat begonnen, somit wird es Zeit für den ersten #FrontendFriday in 2021.
So ziemlich jeder Frontend Entwickler kennt bestimmt das Problem,

dass er in seiner Arbeit ausgebremst wird, weil bestimmte Ressourcen oder Assets (Bilder, PDFs, etc.) (noch) nicht erreichbar sind. Sei es, weil das Backend noch nicht soweit entwickelt ist oder es (noch) keinen Webserver gibt, auf dem diese Dateien gehostet werden.
Mit dem npm package „http-server“ lässt sich dieses und ähnliche Probleme in wenigen Minuten umgehen. Mit diesem command-line basierten http-server lassen sich sehr einfach statische Dateien lokal hosten.

node.js
Quelle: https://www.npmjs.com/package/http-server

 

Die Verwendung ist ganz einfach. Zunächst muss auf dem System Node.js installiert sein.

Anschließend muss über die Kommandozeile das npm package „http-server“ installiert werden:

npm install --global http-server

Danach kann der Server bereits mit dem Befehl „http-server“ und dem Pfad zum Verzeichnis, das gehostet werden soll, gestartet werden.

http-server [path]

http Server

http-Server

Wenn man nun im Browser die Adresse localhost:8080 oder eine der anderen Adressen aus der Kommandozeile eingibt, erscheint ein Index über die gehosteten Dateien aus dem Verzeichnis.

 

 

 

 

 

Es gibt auch noch viele Optionen, die beim Starten des Servers verwendet werden können. Beispielsweise ein anderer Port, die Verwendung von Username/Password authentication, SSL, CORS, Redirects, uvm.

 

Fazit

„http-server“ ist eine sehr einfache, schnelle und leichtgewichtige Möglichkeit, seine Ressourcen lokal zu hosten. Prinzipiell könnte der Server auch produktiv verwendet werden. Vorher sollten jedoch die Anforderungen und möglichen Alternativen abgewogen werden.

 

Mehr über Frontend Entwicklung erfahren 

Zurück zur Übersicht

Kommentar verfassen

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

*Pflichtfelder

*