Frontend / UI
Die verschiedenen Frontend-Umgebungen
Voraussetzungen
- Einsatzbereite VM mit BlueMind in Version 5.0 oder höher.
VueJS-Umgebung
Voraussetzungen
- NodeJS, installiert über die offizielle Website (Version 8 oder höher).
- NPM wird zusammen mit NodeJS installiert.
- Yarn von der offiziellen Website installiert (Version 1.12 oder höher).
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 unterhttp://*: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",
]
},
}
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:
-
Gehen Sie zu „Hilfe“ / „Neue Software installieren“
-
Hinzufügen https://forge.bluemind.net/nexus/service/rest/repository/browse/eclipse-gwt-plugin/repository/
-
Wählen Sie „GWT Eclipse Plugin“ aus
-
Wählen Sie ausschließlich die Version GWT 2.10.0 aus
-
Gehen Sie zu „Windows / Einstellungen / GWT“ und aktivieren Sie „GWT 2.10.0“
- Gehen Sie zu „Hilfe“ / „Neue Software installieren“
- Hinzufügen http://download.eclipse.org/mylyn/releases/latest
- Wählen Sie ausschließlich „Mylin Commons“ aus
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"
- 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.
- Im Dev-Modus kann es erforderlich sein, dem GWT-Entwicklungsserver eine IP-Adresse anzugeben. Diese kann unter „Konfiguration / Arguments“ durch Angabe eines Parameters „
- Falls folgende Fehlermeldung erscheint:
[ERROR] jreLeakPrevention.gcDaemonFailjava.lang.ClassNotFoundException: sun.misc.GCat 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-cspauf 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.shaus - Unter
http://localhost:9810sind die verschiedenen von plovr verwalteten Konfigurationen (~Anwendungen) aufgelistet.
- 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
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)
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“:
- Für Firefox setzen Sie auf der Seite „about:config “ den Parameter „
security.mixed_content.block_active_content“ auf „false“. - Für Chrome ist es offenbar nicht mehr möglich, gemischte Inhalte zuzulassen (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 setzen Sie auf der Seite „about:config “ den Parameter „
- 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 istbluemind.virtdie URL für den Zugriff auf Ihre VM und bluemind-dev.virt die URL für den Zugriff über HTTPserver {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-Serverbluemind.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
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
}
}