Frontend / UI
Die verschiedenen Front-End-Umgebungen
Voraussetzungen
VM mit Bluemind in der Version 4.8 oder höher ist einsatzbereit.
VueJS-Umgebung
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.jsonbefindet (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 unterhttp://*: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",
]
},
}
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
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"
- 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.
- 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 "
- 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
Voraussetzungen
- Erstellen Sie die leeren Dateien
/root/dev-unsecure-cookiesund/root/dev-no-cspauf 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.shaus - Auf
http://localhost:9810sind die verschiedenen Konfigurationen (~Anwendungen) aufgeführt, die von plovr verwaltet werden
- 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
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.
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/hostsIhres 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" :
- Für Firefox, ändern Sie auf der Seite "about:config" den Parameter
security.mixed_content.block_active_contentauf false - Für Chrome, anscheinend erlauben sie nicht mehr die Freigabe von gemischtem Inhalt (siehe https://support.google.com/chrome/thread/25175839?hl=en und https://docs.adobe.com/content/help/en/target/using/experiences/vec/troubleshoot-composer/mixed-content.html)
- Für Firefox, ändern Sie auf der Seite "about:config" den Parameter
- 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 wirdbluemind.virtfür den Zugriff auf die VM-URL verwendet und bluemind-dev.virt wird für den Zugriff über HTTP verwendetserver {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
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 VMbluemind.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]