Sollen kompilierte JavaScript und CSS Frontend Assets ins GIT?


F├╝r diese Webseite verwende ich das Laravel-Framework und f├╝r die Versionierung GIT. Wie auch bei anderen Frameworks werden die JavaScript und CSS Files dabei ├╝ber npm verwaltet und f├╝r die Verwendung zusammengefasst: kompiliert.

npm

NPM ist ein Paketmanager f├╝r JavaScript-Sourcen. ├ťber npm k├Ânnen JavaScript-Bibliotheken┬á heruntergeladen und zu einer Datei zusammengefasst werden. Als Beispiel f├╝gt der Befehl "npm run prod" alle Sourcen und den eigenen JavaScript-Code sowie CSS in jeweils eine Datei zusammen: app.js und app.css. Im Browser reicht es dann, die app.js-Datei als Script-Quelle zu verwenden und app.css als Style-Quelle. Welche Pakete heruntergeladen werden sollen steht in der Datei: package.json. Die Sourcen werden in den Ordner node-modules geladen.┬á

Einsatz neuer Assets

Anfangs habe ich den Befehl "npm run prod" beim Einsatz neuer Versionen am eigentlichen Webserver ausgef├╝hrt. Eine Zeit lang hatte ich damit keine Probleme. Mit steigender Zahl an Webseiten und anderen Diensten am Server und nachdem auch das Webserver-Setup mehr Arbeitsspeicher ben├Âtigt, bin ich beim Kompilieren der Assets an die Speichergrenze des Webservers gekommen, zuletzt hat npm mehr als 1GB Arbeitsspeicher f├╝r den Vorgang vereinnahmt: Nicht gut, wenn dieser nicht mehr frei ist. Dann hatte ich in der Vergangenheit immer wieder Probleme mit der Kompatibilit├Ąt einzelner neuer Pakete und deren Abh├Ąngigkeiten: Probleme die nicht auf einem produktiven Webserver gel├Âst werden sollen, da die Webseite mitunter in dieser Zeit nicht mehr richtig funktioniert. Aktuell habe ich aus den beschriebenen Gr├╝nden die kompilierten Assets zus├Ątzlich in mein GIT-Repository aufgenommen. Kompiliert werden die Assets auf meinem Rechner.

Entwicklungsumgebung

Nachdem ich f├╝r den Betrieb der Webseite Docker verwende, betreibe ich einen identischen Container als Testumgebung auf meinem Rechner. Dies erm├Âglicht es, die Assets ├╝ber den Testcontainer zu kompilieren und im Anschluss auf den Webserver zu ├╝bertragen.┬á

Fazit

Eigentlich geh├Âren kompilierte Assets genausowenig wie die heruntergeladenen Sourcen (node-modules) ins Git, da diese aus den bestehenden Files mit einem erneuten Download und anschlie├čendem Kompilieren erzeugt werden k├Ânnen. Die app.js beinhaltet keine Information, die nicht ├╝ber das GIT-Repo und ├╝ber die Paketfiles erstellt werden k├Ânnte. Dennoch habe ich die kompilierten Assets jetzt in mein GIT-Repo mit aufgenommen. Vorteil: Ich ben├Âtige keine Arbeitsspeicher-Reserven auf dem eigentlichen Webserver und ich kann das kompilierte Ergebnis bevor ich die neue Version am produktiven Webserver einsetze vorher noch kontrollieren. Sollte etwas nicht funktionieren, kann ich die Seite zudem schneller auf einen alten GIT-Commit zur├╝ckstellen.

Als GIT-Repository verwende ich Gitea - Schlanker und schneller GIT-Server

Mein Docker-Setup schaut im Detail so aus: Docker-Webserver Setup f├╝r Laravel - Konfig im Detail

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE f├╝r deine Bewertung!

Ver├Âffentlichung: 08.06.2021 von Bernhard ­čöö


Top-Artikel in diesem Bereich


G├╝nstiger und sparsamer Docker Mini Server f├╝r zu Hause
Wer zu Hause einen kleinen Server betreiben will, ben├Âtigt dazu eine Hardware mit einem geringen Stromverbrauch und dennoch gen├╝gend Leistung. Aktuell verwende ich f├╝r den Betrieb meiner Docker-Container einen selbstgebauten NAS. Die Hardware dient als Netzwerkspeicher und gleichzeitig als Plattform f├╝r den Betrieb meiner Docker-Container. Um das Setup zu optimieren, w├Ąre es besser die beiden Aufgaben zu trennen und die Serverdienste auf einer eigenen Hardware zu betreib...

sichere https Verbindung: Traefik Reverse Proxy + Let┬┤s Encrypt
F├╝r nahezu alle bekannten Websysteme gibt es fertige Docker-Container, bzw. k├Ânnen diese relativ einfach selbst erstellt oder bestehende Container angepasst werden. Als Docker-Container k├Ânnen die Webservices sehr einfacher installiert und betrieben werden. Wer einen Webservice ├╝ber das Internet ver├Âffentlicht, sollte daf├╝r heute unbedingt eine verschl├╝sselte Verbindung (SSL) anbieten. Um den Zugriff auf einen oder mehrere Container zu regeln, kann ein Reverse-Proxy mit kostenlosen LetÔÇÖs Encrypt...

Nextcloud Server Docker | Einrichtung +https: LetÔÇÖs Encrypt [ssl]
Um mit meinem NAS Kontakte, Termine und Fotos zu synchronisieren, habe ich Nextcloud getestet und damit anderen Cloudanbietern f├╝r meine privaten Daten ein St├╝ck weit den R├╝cken gekehrt. Dank Docker ist die Installation einfacher und flexibler denn je und erm├Âglicht es, Nextcloud auf einer beinahe beliebigen Hardware zu betreiben.

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details