Zum Hauptinhalt gehen
Version: 5.6

Frontend / UI

Die verschiedenen Frontend-Umgebungen​

Voraussetzungen​

  • Einsatzbereite VM mit BlueMind in Version 5.0 oder höher.

VueJS-Umgebung​

Voraussetzungen​

So starten Sie den Entwicklungsserver:​

  • Wechseln Sie in das Plugin, das die Anwendung enthält, und öffnen Sie den Ordner, in dem sich die Datei „ package.json “ befindet (normalerweise im Stammverzeichnis des Vue.js-Plugins).
  • Führen Sie anschließend „yarn dev “ aus (oder „npm run dev “, falls Sie sich nicht im Repository „bluemind-all“ befinden): Daraufhin wird ein Entwicklungsserver (mit aktivierter Live-Reload-Funktion) gestartet. Der Server wird unter http://*:9180/

Konfiguration von VSCode (empfohlener Editor)​

  • Bearbeiten Sie die Einstellungen über „Datei“ > „Einstellungen“ > „Parameter“
{
"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",
]
},
}
Achtung

Falls der Webpack-Entwicklungsserver die Quelldateien bei Änderungen nicht im laufenden Betrieb neu kompiliert, liegt dies wahrscheinlich an einer unzureichenden Anzahl von „inotify-Watchern“: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

GWT-Umgebung​

Voraussetzungen​

  • Eclipse 2022-09 ist installiert.

Installation:​

Sollte ein Fehler im Zusammenhang mit Mylin Commons auftreten:

So starten Sie den Entwicklungsserver:​

  • 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
  • Sollte beim Starten des Servers eine Meldung wie „could not find any host pages in project“ erscheinen: Klicken Sie mit der rechten Maustaste auf das Projekt / Eigenschaften / GWT / Webanwendung und wählen Sie die Option „This directory has a WAR directory“ aus (und legen Sie den Ordner fest, beispielsweise „web-resources“).
  • Falls folgende Fehlermeldung erscheint:

    “, gibt es mehrere mögliche Ursachen:
    • Im Dev-Modus kann es erforderlich sein, dem GWT-Entwicklungsserver eine IP-Adresse anzugeben. Diese kann unter „Konfiguration / Arguments“ durch Angabe eines Parameters „-bindAddress 0.0.0.0 “ (beispielsweise) festgelegt werden.
    • Sie haben ein Problem mit der Content Security Policy (sehen Sie in der Konsole nach). Schauen Sie im Abschnitt „Bei CSP-Problemen“ des Devmodes nach.
    • Sie haben ein Problem mit „Mixed Content Security“ (sehen Sie in der Konsole nach). Schauen Sie im Abschnitt „Bei Problemen mit HTTPS“ im Devmode nach.
  • Falls folgende Fehlermeldung erscheint:
    [ERROR] jreLeakPrevention.gcDaemonFail
    java.lang.ClassNotFoundException: sun.misc.GC
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at com.google.gwt.dev.shell.jetty.JettyLauncher.jreLeakPrevention(JettyLauncher.java:915)
    at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:737)
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:636)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:898)
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:705)
    at com.google.gwt.dev.DevMode.main(DevMode.java:432)

Sie können dies getrost ignorieren. Die umgebenden Steuerelemente dienen dazu, diese Situation zu verhindern – die Verwendung der JRE-Implementierung hat diese Funktion entfernt.

Closure-Umgebung​

Voraussetzungen​

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

So starten Sie den Entwicklungsserver:

  • Führen Sie im Verzeichnis „open/ui“ das Skript plovr.sh aus
  • Unter http://localhost:9810 sind die verschiedenen von plovr verwalteten Konfigurationen (~Anwendungen) aufgelistet.
Info
  • Praktische Plovr-Konfigurationen (sind in die URL direkt nach „index.html“ einzufügen, zum Beispiel: https://virt.bluemind.loc/contact/index.html?mode=RAW )
    • ?level=QUIET, um die Warnungen über der Anwendung nicht anzuzeigen,
    • ?mode=RAW, wodurch der nicht-kompilierte Modus aktiviert wird (das gesamte JavaScript im Klartext)
  • Weitere Informationen zur Konfiguration und zu den in plovr verfügbaren Optionen finden Sie unter: http://plovr.com/options.html

Reverse-Proxy konfigurieren​

Info

Konfigurieren Sie Ihre Entwicklungsumgebung so, dass die richtige JS-Datei (die, an der gerade gearbeitet wird) vom Webserver von BlueMind, der auf Ihrer VM installiert ist, verwendet wird.

Über das DevMode-Plugin (empfohlene Methode)​

Vorteil

Erfordert keinen Reverse-Proxy auf dem Entwicklungsrechner.

Voraussetzungen​

Das Paket bm-plugin-webserver-devfilter ist auf Ihrer 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 Datei „ /etc/hosts “ Ihres Hosts ein
  • Starten Sie, weiterhin auf dem Host, den Entwicklungsserver

Anmerkungen​

  • Ändern Sie in der conf-Datei das Feld „active “ der Filter, um diese zu aktivieren.
  • Starten Sie bei jeder Änderung der Conf-Datei den bm-webserver neu oder fügen Sie „?reload-devmode“ zur URL hinzu (Beispiel: /cal/index.html?reload-devmode)
  • Zwei spezielle Filter, die bei der Entwicklung mit Closure stets aktiviert bleiben können: der Filter zum Deaktivieren des AppCaches und der Filter für /input/
  • Über den folgenden Link können Sie die Standardkonfiguration für den Devmode einsehen oder herunterladen

Bei Problemen mit HTTPS / Mixed Content Security​

Es gibt zwei Möglichkeiten:

  • Starten Sie den Browser im „unsicheren Modus“:
  • Wechseln Sie in den vollständigen HTTP-Modus:
    Standardmäßig leitet BlueMind HTTP-Anfragen auf HTTPS um. Sie müssen daher die folgende konfiguration zu Ihrer Nginx-Konfiguration (auf Ihrer VM) hinzufügen. In diesem Beispiel ist bluemind.virt die URL für den Zugriff auf Ihre VM und bluemind-dev.virt die URL für den Zugriff über HTTP
    server {
    listen 80;
    server_name bluemind-dev.virt;

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

Bei Problemen mit CSP​

Blockiert die CSP von BlueMind die Anfrage?

Sie müssen ein „touch /root/dev-no-csp“ ausführen und bm-webserver neu starten

Die Authentifizierung über HTTP:// ist nicht möglich.​

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

Bei Problemen 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
  • Starten Sie anschließend nginx neu: nginx -s reload
  • In Google Chrome/Chromium muss der HSTS-Cache geleert werden (chrome://net-internals / Domain Security Policy / Delete domain security policies)

Debug​

Falls der Devmode nicht funktioniert, liegt dies wahrscheinlich an den beiden oben genannten Problemen.

Andernfalls führen Sie bitte die folgenden Schritte durch, um Ihr Problem einzugrenzen:

  • Ist die VM in Ordnung?
  • Wurde der Entwicklungsserver erfolgreich gestartet?
  • Den Host von der VM aus anpingen?
  • Die gesuchte JS-Datei wird von der VM aus über Curl abgerufen (Firewall-Problem?)
  • Sind die in /etc/bm/dev.json definierten Regeln korrekt?

Über einen Reverse-Proxy​

Voraussetzungen​

Der Reverse Proxy Nginx, Apache oder Caddy muss auf seiner Entwicklungsmaschine installiert sein.

Anmerkungen:

  • bluemind.host: URL für den Zugriff auf den auf Ihrer VM installierten BM-Server
  • bluemind.virt: URL, die verwendet wird, um das richtige JS zu aktivieren (dasjenige, das auf Ihrem Entwicklungsrechner geändert, kompiliert und per Live-Reload vom webpack-dev-server bereitgestellt wird).
  • Beispiel für /etc/hosts (unter 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;

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

Caddy​

Info

Mit Caddy und dieser Konfiguration sind die Dateien „ /root/dev-unsecure-cookies “ und „ /root/dev-no-csp “ NICHT erforderlich.

{
auto_https disable_redirects
}
localhost:2080 {
header {
-Strict-Transport-Security
-Content-Security-Policy
}
reverse_proxy * {
to https://[address_du_serveur]:443
transport http {
keepalive off
tls_insecure_skip_verify
}
}
handle_path /adminconsole/net.bluemind.ui.adminconsole.main/* {
rewrite * /net.bluemind.ui.adminconsole.main{path}
reverse_proxy http://localhost:9876
}
}