# Stabilitätspunkte, Abhängigkeitsaktualisierung & Codequalität

**URL:** <https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121>\
**Category:** Développement\
**Created:** [22. Februar 2021 um 10:57 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121 "2021-02-22T10:57:20Z")\
**Posts on this page:** 19\
**Page:** 4

<div class="post-metadata">

**Author:** ![AlexTrovato](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/alextrovato/32/10705_2.png) [@AlexTrovato](https://community.gladysassistant.com/u/AlexTrovato)\
**Post date:** [8. April 2021 um 14:00 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/62 "2021-04-08T14:00:35Z")

</div>

Ahh, die Verbindung ist weg, man hört mich auf dem Video nicht… und es ist nicht das richtige Fenster aufgenommen worden… was für ein IT-Experte bin ich nur!

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [8. April 2021 um 14:02 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/63 "2021-04-08T14:02:04Z")

</div>

Ach Mist. Ich versuche es dieses Wochenende mit der Dokumentation, die du erstellt hast (ich habe irgendwo ein README oder einen Post gelesen) und sage dir Bescheid, falls ich mehr Dokumentation benötige.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [8. April 2021 um 14:02 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/64 "2021-04-08T14:02:26Z")

</div>

> [@AlexTrovato](#):
>
> Ahh, Mist, man hört mich nicht auf dem Video… und es ist nicht das richtige Fenster aufgenommen worden… was für ein IT-Experte bin ich nur!

Mist! 😃 Na gut, poste wenigstens deine Präsentation hier 🙂

---

<div class="post-metadata">

**Author:** ![AlexTrovato](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/alextrovato/32/10705_2.png) [@AlexTrovato](https://community.gladysassistant.com/u/AlexTrovato)\
**Post date:** [8. April 2021 um 14:05 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/65 "2021-04-08T14:05:03Z")

</div>

Die Präsentation ist hier

> **[Gladys Assistant - Cypress](https://docs.google.com/presentation/d/1iYCs9nGzACxWXlp8DFNgeFxl1FM9tw-QpMJEK_VT3dQ/edit?usp=sharing)**
>
> Gladys Assistant Tests end-to-end avec Cypress

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [8. April 2021 um 16:19 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/66 "2021-04-08T16:19:32Z")

</div>

Sorry !! Ich bin gerade erst mit der Arbeit fertig geworden !! Naja, verpasst ^^ Also mache ich jetzt erstmal so wie @cicoub13 mit der Präsentation als Unterstützung und wir schauen uns das nochmal an !! Danke für all die Details in jedem Fall @AlexTrovato

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [10. Mai 2021 um 05:15 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/67 "2021-05-10T05:15:34Z")

</div>

Nach dem Merge des PR von @AlexTrovato zu den Cypress-Tests können wir nun Tests hinzufügen und mit der Migration zur neuen Version von preact-cli fortfahren, sowie einige etwas schwere Bibliotheken entfernen! 🙂

Zum Spaß habe ich mir angesehen, was im JS-Bundle viel Platz einnimmt

In den node\_modules des Hauptbundles:

 ![Screenshot 2021-05-10 at 13.09.31](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/1/1dbc2696d79917f7ab293252ae4d577ddb911563.png)

Ich bemerke, dass die Lib «&nbsp;vis&nbsp;» viel Platz einnimmt und vor allem nicht korrekt «&nbsp;route gesplittet&nbsp;» ist. Da diese Lib nur im Zwave-Service verwendet wird, dachte ich, dass die Lib nur im Bundle der Seite enthalten ist.

Aber wie die preact-cli-Dokumentation sagt ([GitHub - preactjs/preact-cli: 😺 Your next Preact PWA starts in 30 seconds. · GitHub](https://github.com/preactjs/preact-cli#route-based-code-splitting)):

 ![Screenshot 2021-05-10 at 13.13.05](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/3/3b0210d209dbe8b2f3799ba28a4dd026fb4bce1d.png)

Ich denke, dass etwas mit dem Code-Splitting nicht funktioniert, wie wir die Dateien derzeit importieren. Wir müssen ermitteln 🙂

Edit: Ich bin auf diesen super Blog-Post gestoßen:

> **[Front-End Developer, Dublin, Steven Fitzpatrick](https://stevenfitzpatrick.io/blog/code-splitting-with-preact)**
>
> Hi, I’m Steven Fitzpatrick, a Front-End Developer based in Dublin, Ireland.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [10. Mai 2021 um 05:34 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/68 "2021-05-10T05:34:46Z")

</div>

Ich habe eine kleine Analyse der Pakete durchgeführt, die unser Frontend am meisten belasten:

| Library | Size | Action |
| --- | --- | --- |
| vis-network | 509 kb | Entfernen und durch eine einfache Tabelle in der Z-Wave-Integration ersetzen |
| vis-data | 220 kb | Entfernen und durch eine einfache Tabelle in der Z-Wave-Integration ersetzen |
| date-fns | 240kb | Durch dayjs ersetzen (bereits im Frontend verwendet) |
| leaflet | 408 kb | Prüfen, ob wir es dynamisch nur in der Kartenansicht, Anmeldeformular und Home-Einstellungen importieren können |
| cropper | 110kb | Prüfen, ob wir es nur in der Anmeldung und Einstellungen importieren können |
| tagify | 59 kb | Prüfen, ob wir es dynamisch nur in der Szenenansicht importieren können |
| @jaames/iro | 27kb | Prüfen, ob wir es dynamisch importieren können? |

Zu einem anderen Thema gibt es auch die Lib «&nbsp;tabler-ui&nbsp;», die wir für die UI verwenden und die in letzter Zeit wirklich viele neue Funktionen herausgebracht hat. Irgendwann müssen wir uns damit beschäftigen, aber das wird ein großes Projekt!! 😛

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [10. Mai 2021 um 06:08 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/69 "2021-05-10T06:08:04Z")

</div>

Okay, am Ende ist es mit date-fns nicht so einfach…

Die Lib «&nbsp;react-datepicker&nbsp;» hängt davon ab, um ihre UI auf Französisch zu formatieren. Ich habe nicht den Eindruck, dass sich das ändern lässt.

Ich werde versuchen, nur das Minimum der Lib zu behalten…

---

<div class="post-metadata">

**Author:** ![tagcash](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/tagcash/32/7383_2.png) [@tagcash](https://community.gladysassistant.com/u/tagcash)\
**Post date:** [10. Mai 2021 um 06:42 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/71 "2021-05-10T06:42:26Z")

</div>

👍 👌 Nichts mehr hinzuzufügen 👌 👍

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [10. Mai 2021 um 09:24 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/72 "2021-05-10T09:24:47Z")

</div>

Sobald wir ein bisschen aufgeräumt haben, können wir das hier zum CI hinzufügen:

> **[GitHub - siddharthkp/bundlesize: Keep your bundle size in check](https://github.com/siddharthkp/bundlesize)**
>
> Keep your bundle size in check

---

<div class="post-metadata">

**Author:** ![Jean34](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean34/32/3349_2.png) [@Jean34](https://community.gladysassistant.com/u/Jean34)\
**Post date:** [10. Mai 2021 um 10:58 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/73 "2021-05-10T10:58:18Z")

</div>

Ich weiß nicht, ob das zusammenhängt, aber wenn man Gladys zum ersten Mal installiert und ihr über den Chat schreiben möchte, dann antwortet sie nicht. Und wenn ich die Seite neu lade, braucht sie leicht 15 Sekunden zum Laden, und dann habe ich meine Antwort verzögert, also über meiner Frage… Ich reproduziere das immer wieder, aber ich habe vergessen, Screenshots zu machen.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [10. Mai 2021 um 11:45 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/74 "2021-05-10T11:45:00Z")

</div>

@Jean34 Ich weiß nicht, ob das zusammenhängt, können wir das im Thema „Verschiedene Bugs“ (oder einem anderen neuen Thema, wie du möchtest) besprechen? 🙂

---

<div class="post-metadata">

**Author:** ![Jean34](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean34/32/3349_2.png) [@Jean34](https://community.gladysassistant.com/u/Jean34)\
**Post date:** [10. Mai 2021 um 15:38 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/75 "2021-05-10T15:38:38Z")

</div>

Machst du noch ein neues Dev-Release wegen des Bugs, den ich dir gestern für die Wetterbox gesagt habe? Wenn ja, reproduziere ich den Bug in dem anderen Thread, okay 😉

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [11. Mai 2021 um 00:43 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/76 "2021-05-11T00:43:45Z")

</div>

Ich habe gerade einen Dev-Build gestartet 🙂

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [16. Mai 2021 um 14:39 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/77 "2021-05-16T14:39:30Z")

</div>

Ich habe einen PR für eine Sicherheitslücke mit hoher Priorität auf der Server-Seite erstellt: [security(server): CVE-2021-23358 by cicoub13 · Pull Request #1195 · GladysAssistant/Gladys · GitHub](https://github.com/GladysAssistant/Gladys/pull/1195)  
**Was haltet ihr davon?** Ist es besser, die Abhängigkeiten schrittweise zu aktualisieren, wenn man sie sieht? Oder lieber eine „Aktualisierungssitzung“ einmal im Monat durchzuführen?

Ich denke, Cypress wird es ermöglichen, die Abhängigkeiten ruhiger zu aktualisieren, wenn es eine größere Abdeckung der Funktionen hat 🚀

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [17. Mai 2021 um 01:45 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/78 "2021-05-17T01:45:35Z")

</div>

Das hängt von der Schwachstelle und dem Einfluss ab 🙂

In Gladys blockiert der Build aktuell bei allen Schwachstellen mit einer Kritikalität \>= HIGH für Produktionsabhängigkeiten (nicht für devDependencies) (wir führen bei jedem Push npm audit aus) (siehe [Gladys/.github/workflows/docker-pr-build.yml at master · GladysAssistant/Gladys · GitHub](https://github.com/GladysAssistant/Gladys/blob/master/.github/workflows/docker-pr-build.yml#L88)), also haben wir bereits einen automatisierten Prozess für Abhängigkeiten, die in die Produktion gehen.

In diesem Fall handelt es sich um eine devDependency, also ist es keine Abhängigkeit, die in die Produktion geht, sondern nur ein lokales Build-Tool, daher hat die Schwachstelle keinen Sicherheitsbezug auf Gladys.

Ja, ab und zu eine kleine Runde für diese Art von devDependencies zu machen, denke ich, ist der richtige Ansatz 🙂

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [17. Mai 2021 um 08:20 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/79 "2021-05-17T08:20:55Z")

</div>

Danke für die klare Antwort. Super für den blockierenden Build für echte Abhängigkeiten 💪

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [19. Juli 2021 um 03:21 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/80 "2021-07-19T03:21:53Z")

</div>

Hallo zusammen!

Ich habe Donnerstag und Freitag damit verbracht, Stabilität zu verbessern, Updates durchzuführen, aufzuräumen und eine große Neuigkeit: Ich habe es geschafft, auf preact-cli 3.xx umzusteigen!!! 😃

Das ist einfach unglaublich, es verändert alles:

- Keine seltsamen Bugs mehr beim Entwickeln (Komponenten, die sich verdoppeln)
- Das JS-Bundle wird für moderne Browser gebaut und lädt Polyfills intelligent. Das macht einen echten Unterschied in der Bundle-Größe. Wir bleiben kompatibel mit \> 99% der Browser im Umlauf, keine Panik 🙂 Meine Zielsetzung für Gladys im Allgemeinen ist es, mit Firefox, Chrome und Safari kompatibel zu sein. Das ist schon mal gut für das Projekt, das wir haben.
- Möglichkeit, Komponenten asynchron zu laden und somit kein riesiges zentrales Bundle zu haben, sondern kleine Bundles. Mal sehen, ob wir das wirklich pro Seite trennen wollen. Ich habe Tests durchgeführt, um zu sehen, wie es wäre, wenn alle Routen separate Bundles hätten, und die Benutzererfahrung ist nicht unbedingt besser: Statt eines etwas langsameren initialen Ladens wirkt die App langsamer, wenn man sie durchstöbert, weil für jede Route eine Anfrage gestellt werden muss, und das ergibt Hunderte von Bundles statt einem. Da die App eine PWA ist, muss sie sich durch Hunderte von sequenziellen Anfragen aktualisieren, was langsamer ist, während es mit einem einzigen Bundle nur eine Anfrage (zwar etwas langsamer, aber nur eine) ist. Ich denke, wir sollten lieber klug vorgehen: das nur tun, wenn es notwendig ist, auf den Routen, die wirklich sehr schwere Komponenten haben (z.B. die Karte mit Leaflet, so etwas)

Ich bin sehr zufrieden mit dem Ergebnis, der PR ist hier für alle, die es interessiert:

[https://github.com/GladysAssistant/Gladys/pull/1242](https://github.com/GladysAssistant/Gladys/pull/1242)

Edit: Ich habe einen Dev-Build erstellt, falls ihr testen wollt.

Die Gladys-Demo-Website ist auch auf diesen neuen Build umgestiegen

> **[Gladys Assistant](https://demo.gladysassistant.com/dashboard)**

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [26. Juli 2021 um 05:23 UTC](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121/81 "2021-07-26T05:23:47Z")

</div>

Ich verwende diesen Build und habe bisher keine Nebenwirkungen festgestellt 😀  
Gut gemacht!

[Vorherige Seite](https://community.gladysassistant.com/t/point-stabilite-mise-a-jour-des-dependance-qualite-de-code/6121.md?page=3)
