Zum Hauptinhalt springen

Frontend / UI

Die verschiedenen Frontumgebungen

Voraussetzungen

VM mit Bluemind in der Version 4.8 oder höher ist einsatzbereit.

VueJS-Umgebung

Voraussetzungen

NodeJS von der offiziellen Website installiert (Version 8 oder höher). NPM wird mit NodeJS installiert. Yarn von der offiziellen Website installiert (Version 1.12 oder höher).

Den Entwicklungsserver starten

  • Gehen Sie im Plugin, das die Anwendung enthält, in den Ordner, in dem sich die Datei package.json befindet (normalerweise im Stammverzeichnis des Vue.js-Plugins)
  • Führen Sie dann "yarn dev" aus (oder "npm run dev", wenn Sie sich nicht im bluemind-all Repository befinden): Es wird dann ein Entwicklungsserver (live-reload enabled) ausgeführt. Der Server wird unter http://*:9180/ gestartet

VSCode Editor (empfohlen)

  • editierbar über Datei > Voreinstellungen > Einstellungen)
{
"settings": {
"prettier.eslintIntegration": true,
"editor.tabSize": 4,
"eslint.autoFixOnSave": true,
"eslint.validate": [
{
"autoFix": true,
"language": "javascript"
},
{
"autoFix": true,
"language": "vue"
}
],
},
"extensions": {
"recommendations": [
"formulahendry.auto-close-tag",
"formulahendry.auto-rename-tag",
"msjsdiag.debugger-for-chrome",
"dbaeumer.vscode-eslint",
"eg2.vscode-npm-script",
"christian-kohler.npm-intellisense",
"esbenp.prettier-vscode",
"dariofuzinato.vue-peek",
"octref.vetur",
]
},
}
danger

Wenn der dev Webpack-Server die Quelldateien bei einer Änderung nicht direkt neu kompiliert, liegt das wahrscheinlich an einer unzureichenden Anzahl von "inotify watchers":
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

GWT-Umgebung

Voraussetzungen

Eclipse 2022-03 (minimum) ist installiert.

Installation

  • Installieren Sie das "GWT Eclipse Plugin" (über Eclipse Marketplace)
  • Bei der Installation des Plugins nur GWT 2.8 aktivieren

Den Entwicklungsserver starten

  • Klicken Sie mit der rechten Maustaste auf das Projekt, das das JS-Bundle bereitstellt (z.B. net.bluemind.ui.adminconsole.main für AC), dann auf "Run As" und schließlich "GWT Development Mode with Jetty"
danger
  • Wenn beim Start des Servers eine Meldung der Art "could not find any host pages in project" erscheint: Klicken Sie mit der rechten Maustaste auf das Projekt / Eigenschaften / GWT / Web Application und wählen Sie die Option "This directory has a WAR directory" (und konfigurieren Sie den Ordner, z.B. web-resources).
  • Wenn diese Fehlermeldung erscheint:

    Dann gibt mehrere mögliche Gründe:
    • Im devmode kann es notwendig sein, dem dev GWT-Server eine IP-Adresse anzugeben. Sie kann in Run Configuration / Arguments durch Angabe eines Parameters "-bindAddress 0.0.0.0" (Beispiel) definiert werden
    • Sie haben ein Problem mit der Content Security Policy (in der Konsole nachsehen). Gehen Sie zum Abschnitt "Bei CSP-Problem" von Devmode
    • Sie haben ein Problem mit Mixed Content Security (in der Konsole nachsehen). Siehe Abschnitt "Im Falle eines Problems mit HTTPS" von Devmode

Environnement Closure

Voraussetzungen
  • Erstellen Sie die leeren Dateien /root/dev-unsecure-cookies et /root/dev-no-csp auf seiner VM und starten Sie den Dienst bm-hps neu
  • Kompilierung erfolgt in open/ui:
 mvn -Dmaven.test.skip=true clean install

Den Entwicklungsserver starten:

  • Führen Sie in open/ui das Skript plovr.sh aus
  • Auf http://localhost:9810 sind die verschiedenen Konfigurationen (~Anwendungen) aufgeführt, die von plovr verwaltet werden
info

Reverse Proxy konfigurieren

info

Konfigurieren Sie Ihre Entwicklungsumgebung so, dass die richtige (in Entwicklung befindliche) JS-Datei vom Bluemind-Webserver, der auf Ihrer VM installiert ist, aufgenommen wird.

Über das Devmode-Plugin (empfohlene Methode)

Vorteile: erfordert keinen Reverse Proxy auf dem Entwicklungsrechner.

Voraussetzungen

Das Paket Bm-plugin-webserver-devfilter ist auf seiner VM installiert. Wenn Sie keinen Zugriff auf den Devmode haben, kompilieren Sie einfach das Paket, indem Sie in den Ordner "devmode/" gehen.

Implementierung

  • Bei der Installation des Pakets wird automatisch eine conf-Datei erstellt (/etc/bm/dev.json) (nur wenn keine vorhandene conf-Datei erkannt wird)
  • Fügen Sie "IP_DE_VOTRE_HOST_SUR_RESEAU_VM dev.bluemind.test" in der /etc/hosts Ihres Hosts hinzu
  • Bleiben Sie auf dem Host und starten Sie den Entwicklungsserver

Anmerkungen

  • Ändern Sie in der conf-Datei das Feld 'active' der Filter, um sie zu aktivieren.
  • Jedes Mal, wenn Sie die conf-Datei ändern, bm-webserver neu starten oder "?reload-devmode" an die URL anfügen (zum Beispiel: /cal/index.html?reload-devmode)
  • Zwei besondere Filter, die zur Entwicklung in Closure immer aktiv gelassen werden: der Filter zur Deaktivierung des Appcache, der andere auf /input/
  • Sie können die Devmode-Standardkonfiguration unter folgendem Link einsehen oder herunterladen

Bei einem Problem mit HTTPS / Mixed Content Security

Gibt es zwei mögliche Lösungen:

  • Starten Sie den Browser im "mode unsecure":

  • Wechseln Sie in den vollständigen HTTP-Modus: Bluemind leitet standardmäßig von HTTP auf HTTPS um. Sie müssen also die folgende Konfiguration zu Ihrem nginx (auf Ihrer VM) hinzufügen. In diesem Beispiel ist *bluemind.virt *die URL, die für den Zugriff auf Ihre VM verwendet wird, und *bluemind-dev.virt *ist die URL für den Zugriff per HTTP

    server {
    listen 80;
    server_name bluemind-dev.virt;

    location / {
    proxy_pass https://bluemind.virt;
    }
    }

Im Falle eines CSP-Problems

Das CSP von Bluemind blockiert die Anfrage?

Führen Sie einfach einen touch /root/dev-no-csp aus und starten Sie HPS neu

Authentifizierung mit HTTP:// nicht möglich machen?

Leeren Sie den Anwendungscache, insbesondere die Cookies, erstellen Sie die Datei /root/dev-unsecure-cookies und starten Sie HPS neu.

Im Falle eines Problems mit HSTS

  • Auf der VM müssen Sie die Zeile entfernen, die den Header add_header Strict-Transport-Security max-age=15768000; in der nginx-Konfiguration hinzufügt: /etc/nginx/sites-enabled/bm-client-access
  • Dann nginx neu starten: nginx -s reload
  • In google-chrome/chromium ist es notwendig, den HSTS-Cache zu leeren (chrome://net-internals / Domain Security Policy / Delete domain security policies)

Debuggen

Wenn der Devmode nicht funktioniert, liegt es wahrscheinlich an den 2 oben genannten Problemen.

Wenn nicht, versuchen Sie folgende Schritte, um Ihr Problem zu qualifizieren:

  • Ist die VM in Ordnung?
  • Ist der Entwicklungsserver gestartet ?
  • Host wird von der VM gepingt?
  • Curl für das gesuchte JS ab der VM (Firewall-Problem?) ausführen
  • Stimmen die in /etc/bm/dev.json definierten Regeln?

Über einen Reverse Proxy

Voraussetzungen

Wahlweise muss der Reverse Proxy Nginx oder Apache auf seinem Entwicklungsrechner installiert sein.

Anmerkungen:

  • bluemind.host : URL für den Zugriff auf den BM-Server, der auf seiner VM installiert ist
  • bluemind.virt : Verwendete URL, um das richtige JS aktiv zu haben (dasjenige, das Sie auf Ihrem Dev-Rechner modifizieren, kompilieren und im Live-Reload von webpack-dev-server geliefert wird).
  • Beispiel von /etc/hosts (für ein Linux):

Nginx

Hinweis: Die geänderte Konfiguration ist die Nginx-Konfiguration auf dem Entwicklungsrechner, nicht auf der VM.

Beispiel:

upstream core2 {
server bluemind.virt:443;
}

server {
listen 80;
server_name bluemind.host;

# SIGNATURE
location /signature/js/compile/net.bluemind.ui.signature.application.js {
proxy_pass http://127.0.0.1:8080/signature/js/compile/net.bluemind.ui.signature.application.js;
}
}

Apache

RewriteEngine On

# SIGNATURE
RewriteRule "^/signature/js/compile/net.bluemind.ui.signature.application.js$" "http://127.0.0.1:8080/signature/js/compile/net.bluemind.ui.signature.application.js" [R]