Zum Hauptinhalt gehen
Version: 4.9

Frontend / UI

Die verschiedenen Front-End-Umgebungen

Achtung

Voraussetzungen

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

VueJS-Umgebung

Achtung

Voraussetzungen

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

Um den Entwicklungsserver zu starten :

  • Wechseln Sie in das Plugin, das die Anwendung enthält, in den Ordner, in dem sich die Datei package.json befindet (normalerweise ist sie im Stammverzeichnis des Vue.js-Plugins)
  • Führen Sie dann "yarn dev" aus (oder "npm run dev", wenn Sie sich nicht im Repository bluemind-all befinden): Ein Entwicklungsserver (Live-Reload aktiviert) wird dann ausgeführt. Der Server läuft unter http://*:9180/

VSCode-Konfiguration (empfohlener Herausgeber)

  • Bearbeiten Sie über Datei > Einstellungen > Einstellungen
{
"settings": {
"prettier.eslintIntegration": true,
"editor.tabSize": 4,
"eslint.autoFixOnSave": true,
"eslint.validate": [
{
"autoFix": true,
"language": "javascript"
},
{
"autoFix": true,
"language": "view"
}

},
"Erweiterungen": {
"Empfehlungen": [
"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",
]
},
}
Achtung

Wenn der Webpack-Entwicklungsserver nicht automatisch die Quelldateien neu kompiliert, wenn sie geändert werden, liegt dies wahrscheinlich an einer unzureichenden Anzahl von "inotify Watchern": https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

GWT-Umgebung

Achtung

Voraussetzungen

Eclipse 2022-03 (minimum) ist installiert.

Installation :

  • Installieren Sie das "GWT Eclipse Plugin" (über Eclipse Marketplace)
  • Aktivieren Sie bei der Installation des Plugins bitte ausschließlich GWT 2.8

Um den Entwicklungsserver zu starten :

  • Klicken Sie mit der rechten Maustaste auf das Projekt, das das JS-Bündel bereitstellt (zum Beispiel net.bluemind.ui.adminconsole.main für die AC), dann "Als" und schließlich "GWT-Entwicklungsmodus mit Jetty"
Achtung
  • Wenn beim Start des Servers eine Meldung vom Typ "could not find any host pages in project" erscheint: Klicken Sie mit der rechten Maustaste auf das Projekt / Eigenschaften / GWT / Webanwendung und wählen Sie die Option "Dieses Verzeichnis enthält ein WAR-Verzeichnis" (und konfigurieren Sie das Verzeichnis, z. B. web-resources).
  • Wenn diese Fehlermeldung erscheint:

    Es gibt mehrere mögliche Gründe:
    • Mit dem devmode kann es notwendig sein, eine IP-Adresse für den GWT-Dev-Server anzugeben. Es kann in Run Configuration / Argumenten festgelegt werden, indem ein Parameter "-bindAddress 0.0.0.0" angegeben wird (zum Beispiel)
    • Sie haben ein Problem mit der Content Security Policy (schauen Sie in die Konsole). Lesen Sie den Abschnitt "Bei Problemen mit CSP" im devmode.
    • Sie haben ein Problem mit Mixed Content Security (überprüfen Sie die Konsole). Lesen Sie den Abschnitt "Bei Problemen mit HTTPS" im devmode.
  • Wenn diese Fehlermeldung erscheint :
[ERROR] jreLeakPrevention.gcDaemonFail
java.lang.ClassNotFoundException: sun.misc.GC
bei java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
bei java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
bei java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
bei java.base/java.lang.Class.forName0(Native Method)
bei java.base/java.lang.Class.forName(Class.java:375)
bei com.google.gwt.dev.shell.jetty.JettyLauncher.jreLeakPrevention(JettyLauncher.java:915)
bei com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:737)
bei com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:636)
bei com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:898)
bei com.google.gwt.dev.DevModeBase.run(DevModeBase.java:705)
bei com.google.gwt.dev.DevMode.main(DevMode.java:432)

Sie können ihn getrost ignorieren. Die umliegenden Kontrollen sollen dies verhindern - die verwendete JRE-Implementierung hat diese Funktion entfernt.

Umgebung Closure

Achtung

Voraussetzungen

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

Um den Entwicklungsserver zu starten :

  • Führen Sie im Ordner open/ui das Skript plovr.sh aus
  • Auf http://localhost:9810 sind die verschiedenen Konfigurationen (~Anwendungen) aufgeführt, die von plovr verwaltet werden
info
  • Praktische Plovr-Konfigurationen (in die URL einfügen, direkt nach index.html, zum Beispiel: https://virt.bluemind.loc/contact/index.html?mode=RAW)
    • ?level=QUIET, um die Warnungen nicht über der Anwendung anzuzeigen,
    • ?mode=RAW, der es ermöglicht, im unkompilierten Modus zu sein (alle JS im Klartext).
  • Weitere Informationen zur Konfiguration und den verfügbaren Optionen in plovr: http://plovr.com/options.html

Den Reverse Proxy konfigurieren

info

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

Über das devmode-Plugin (empfohlene Methode)

Vorteile: erfordert keinen Reverse Proxy auf dem Entwicklungsrechner.

Achtung

Voraussetzungen

Paket bm-plugin-webserver-devfilter auf seiner VM installiert.

Umsetzung

  • Eine Konfigurationsdatei wird automatisch erstellt (/etc/bm/dev.json) beim Installieren des Pakets (nur, wenn keine vorhandene Konfigurationsdatei erkannt wird).
  • Fügen Sie "IP_DE_VOTRE_HOST_SUR_RESEAU_VM dev.bluemind.test" in die /etc/hosts Ihres Hosts ein.
  • Starten Sie auf dem Host den Entwicklungsserver.

Anmerkungen

  • Ändern Sie im Konfigurationsdokument das Feld 'active' der Filter, um sie zu aktivieren.
  • Starten Sie bei jeder Änderung der conf-Datei den bm-webserver neu oder fügen Sie "?reload-devmode" zur URL hinzu (z. B.: /cal/index.html?reload-devmode).
  • Zwei besondere Filter, die immer aktiv bleiben können, um in Closure zu entwickeln: der Filter zum Deaktivieren von Appcache und der andere auf /input/.
  • Sie können die Standardeinstellungen für den Entwicklungsmodus über den folgenden Link konfigurieren konsultieren oder herunterladen.

Im Falle eines Problems mit HTTPS / Mixed Content Security

Es gibt zwei Möglichkeiten:

  • Starten Sie den Browser im "unsecure-Modus" :
  • Passer en mode full HTTP :
    Par défault Bluemind redirige le HTTP vers HTTPS. Sie müssen daher die folgende Konfiguration zu Ihrem Nginx (auf Ihrer VM) hinzufügen. In diesem Beispiel wird bluemind.virt für den Zugriff auf die VM-URL verwendet und bluemind-dev.virt wird für den Zugriff über HTTP verwendet
    server {
    listen 80;
    server_name bluemind-dev.virt;

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

Bei einem Problem mit CSP

Die CSP von Bluemind blockiert die Anfrage?

Sie müssen lediglich den Befehl /root/dev-no-csp eingeben und HPS neu starten.

Authentifizierung mit HTTP:// nicht möglich

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

Bei Problemen mit HSTS

  • In der VM muss die Zeile, die den Header add_header Strict-Transport-Security max-age=15768000; in der nginx-Konfiguration hinzufügt, entfernt werden: /etc/nginx/sites-enabled/bm-client-access
  • Dann starten Sie nginx neu: 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).

Debug

Wenn der devmode nicht funktioniert, ist dies wahrscheinlich auf die beiden oben genannten Probleme zurückzuführen.

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

  • Ist die VM in Ordnung?
  • Entwicklungsserver gut gestartet?
  • Ping des Hosts von der VM?
  • Curl die JS von der VM aus gesucht (Firewall-Problem?)
  • Regeln in /etc/bm/dev.json korrekt?

Über einen Reverse-Proxy

Achtung

Voraussetzungen

Je nach Wahl muss der Reverse-Proxy Nginx oder Apache auf Ihrem Entwicklungsrechner installiert sein.

Hinweise:

  • bluemind.host : URL für den Zugriff auf den installierten BM-Server auf seiner VM
  • bluemind.virt : URL, um den richtigen aktiven JS zu erhalten (denjenigen, den wir auf unserer Dev-Maschine ändern, kompiliert und per live-reload von webpack-dev-server bereitgestellt).
  • Beispiel für /etc/hosts (für ein Linux) :

Nginx

Hinweis : Die geänderte Konfiguration ist die von Nginx auf der Entwicklungsmaschine ****, nicht auf der VM.

Beispiel:

upstream core2 {
server bluemind.virt:443;
}

server {
listen 80;
server_name bluemind.host;

# SIGNATUR
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]