dedlfix: Soweit dann zu „App“.

Beitrag lesen

Tach!

Mag ja sein... aber erzeugt denn besagtes npm run build auch die serverseitigen Skripte in anderen Sprachen als JS?

Ich kenne React nicht genauer, aber Angular als vergleichbares System. Client und Server sind üblicherweise separate Projekte. Deswegen erzeugt der Build des Client-Projekts normal nicht den Serverteil und umgekehrt. Der Server kann auch in einem ganz anderen Ökosystem entstehen (PHP/C#/Java/...) und seine eigene Vorgehensweise zum Erzeugen seiner Runtime haben.

Oder ist es doch nicht ganz so „einfach“ wie oben beschrieben?

Aus Sicht von React ist der Build-Prozess so einfach wie beschrieben. Wie gesagt, der Serverteil ist unabhängig davon. Er muss nicht einmal vorhanden sein. Die Webapp kann kann selbständig ohne serverseitige Datenhaltung arbeiten. Auch wenn sie ausschließlich fremde WebAPIs anspricht, braucht sie ebenfalls keinen eigenen Serverteil.

Was unterscheidet eigentlich Deinen Satz „Webapps sind nichts anderes als HTML/CSS/JS“ von meiner Aussage „Das heißt: Das Ergebnis ist eine mehr oder weniger statische Webseite mit JS.“

Die ausgelieferten Dateien sind üblicherweise fertig und werden nicht noch am Server zusammengebaut. Das ist statisch aus Sicht des Webserver, man braucht nur einen einfachen Webserver für die Client-App.

Da aber (zumindest ist es bei Angular so) das ausgelieferte HTML lediglich eine einzelne Seite und ein Grundgerüst ist, und der Rest erst durch das Javascript im Client aufgebaut wird, spricht man nicht von einer statischen Website. Beim klassischen "statisch" hat man mehrere HTML-Seiten, die miteinander verlinkt sind, und Javascript fügt meist nur Komfortfunktionalität hinzu. Das läuft idealerweise auch bei abgeschaltetem Javascript. Der Unterschied ist in etwa so wie auf dem Desktop zwischen Textdatei und Programm.

Dass du der WebApp absprichst eine WebApp zu sein, nur weil serverseitig kein Programm läuft, ist also so nicht richtig. Das wäre, wie wenn du einem Progamm für den Desktop absprichst ein Programm zu sein, weil es fertig kompiliert ist und nicht etwa zur Laufzeit vom Basic-Interpreter interpretiert wird.

Das Problem an deiner Antwort war (weswegen sie auch zurecht ein Minus kassiert hat), dass sie zwar zu einer serverseitigen NodeJS-Anwendung passt, nicht aber zu einer clientseitigen mit React.

dedlfix.