Historique de la page
Les différents environnements front
Remarque | ||
---|---|---|
| ||
VM avec Bluemind en version 3.5 ou supérieure prête à l'utilisation. |
Environnement VueJS
Remarque | ||
---|---|---|
| ||
NodeJS installé depuis le site officiel (version 8 ou supérieure). NPM est installé avec NodeJS. |
Pour lancer le serveur de développement :
- Se placer dans le plugin contenant l'application, dans le dossier où se trouve le fichier
package.json
(normalement il est à la racine du plugin Vue.js) - Lancer ensuite "
yarn dev
" (ou "npm run dev
" si vous n'êtes pas dans le repo bluemind-all) : un serveur de développement (live-reload enabled) est alors exécuté. Le serveur est lancé sur http://*:9180/
Éditeur VSCode (conseillé)
Bloc de code | ||
---|---|---|
| ||
{
"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",
]
},
} |
Environnement GWT
Remarque | ||
---|---|---|
| ||
Eclipse Oxygen ou Photon installé. |
Installation :
- Installer le plugin Eclipse "GWT Eclipse Plugin" (via Eclipse Marketplace)
- Lors de l'installation du plugin, cocher seulement GWT 2.8
Pour lancer le serveur de développement :
- Clic-droit sur le projet qui fournit le bundle JS (par exemple net.bluemind.ui.adminconsole.main pour l'AC), puis "Run As" et enfin, "GWT Development Mode with Jetty"
Avertissement |
---|
|
Environnement Closure
Remarque | ||
---|---|---|
| ||
|
Pour lancer le serveur de développement :
- Dans open/ui exécuter le script
plovr.sh
- Sur http://localhost:9810 sont listé les différentes configurations (~applications) gérées par plovr
Info |
---|
|
Configurer le reverse proxy
Info |
---|
Configurer son environnement de développement pour que le bon fichier JS (celui en cours de développement) soit consommé par le webserver du Bluemind installé sur sa VM. |
Via le plugin devmode (méthode conseillée)
Avantage : ne nécessite pas de reverse proxy sur la machine de développement.
Remarque | ||
---|---|---|
| ||
Paquet bm-plugin-webserver-devfilter installé sur sa VM. Si vous n'avez pas accès au devmode il suffit de compiler le paquet en se rendant dans le dossier "devmode/". |
Mise en œuvre :
Un fichier de conf est automatiquement créé (
/etc/bm/dev.json
) lors de l'installation du paquet (seulement si aucun fichier de conf existant n'est détecté)- Ajouter "
IP_DE_VOTRE_HOST_SUR_RESEAU_VM dev.bluemind.test
" dans le/etc/hosts
de votre host - Toujours sur l'host, démarrer le serveur de développement (Webpack pour VueJS, GWT Development Mode via le plugin Eclipse Plugin pour GWT, Plovr pour Closure)
Remarques :
- Dans le fichier de conf, modifier le champ '
active
' des filtres pour les activer. - À chaque modification du fichier de conf, redémarrer bm-webserver ou ajouter "?reload-devmode" à l'URL (par exemple : /cal/index.html?reload-devmode )
- Deux filtres particuliers qui peuvent être laisser toujours actifs pour développer en Closure : celui pour désactiver les appcache et l'autre sur /input/
- Vous pouvez consulter ou télécharger sur le lien suivant la configuration par défaut du devmode
Debug :
- En cas de problème avec HTTPS, il faut lancer le navigateur en "mode unsecure" :
- Dans Firefox, depuis la page "about:config" passer le paramètre
security.mixed_content.block_active_content
à false - Pour Chrome, lancer le navigateur avec l'option "--allow-running-insecure-content".
- Dans Firefox, depuis la page "about:config" passer le paramètre
- Si le devmode ne fonctionne pas :
- Est-ce que la VM est ok ?
- Serveur de développement bien lancé ?
- Ping l'host depuis la VM
- Curl le JS recherché depuis la VM (problème de pare-feu ?)
- règles définies dans /etc/bm/dev.json correctes ?
Via un reverse proxy
Remarque | ||
---|---|---|
| ||
Au choix le reverse proxy Nginx ou Apache doit être installé sur sa machine de développement. |
Remarques :
bluemind.host
: URL pour accéder au server BM installé sur sa VMbluemind.virt
: URL utilisée pour avoir le bon JS actif (celui qu'on modifie sur sa machine de dev, compilé et servi en live-reload par webpack-dev-server).- Exemple de
/etc/hosts
(pour un Linux) :
Nginx
Remarque : la configuration modifiée est celle du Nginx sur la machine de développement, pas sur la VM.
Exemple :
Bloc de code |
---|
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 |
Prérequis
- Avoir installé une machine virtuelle avec un BlueMind 3.5 à jour
- Créer le fichier
/root/dev-unsecure-cookies
sur la machine sur laquelle est exécutée le service HPS. Redémarrer le service HPS :
Bloc de code /etc/init.d/bm-hps restart
- Installer un nginx ou un apache sur la machine de développement.
Développement avec Plovr
Afin de pouvoir développer avec Plovr :
- Configuration Plovr
Effectuer un clean maven dans
bluemind-all/open/ui
:Bloc de code mvn -Dmaven.test.skip=true clean install
Toujours dans
bluemind-all/open/ui
executer le script plovr :Bloc de code $ ./plovr.sh
Configuration du proxy Nginx
Bloc de code title /etc/nginx/sites-available/default upstream plovr { ip_hash; server 127.0.0.1:9810; } upstream core2 { server bluemind.vm.lan:443; } server { [...] location / { proxy_pass https://core2/ client_max_body_size 10m; } location /sourcemap { proxy_pass http://plovr; } # CALENDAR location /cal/css/calendar.css { rewrite ^(.*)$ /css/calendar/ break; proxy_pass http://plovr; } location /cal/js/compile/calendar.js { rewrite ^(.*)$ /compile?id=calendar break; proxy_pass http://plovr; } # CONTACT location /contact/css/contact.css { rewrite ^(.*)$ /css/contact/ break; proxy_pass http://plovr; } location /contact/js/compile/contact.js { rewrite ^(.*)$ /compile?id=contact break; proxy_pass http://plovr; } # TASK location /task/css/net.bluemind.task.application.closure.css { rewrite ^(.*)$ /css/net-bluemind-task-application-closure/ break; proxy_pass http://plovr; } location /task/js/compile/net.bluemind.task.application.closure.js { rewrite ^(.*)$ /compile?id=net-bluemind-task-application-closure break; proxy_pass http://plovr; } }
Configuration du proxy Apache
Bloc de code RewriteEngine On # CALENDAR RewriteRule "^/cal/js/compile/calendar.js$" "http://127.0.0.1:9810/compile?id=calendar" [R] RewriteRule "^/cal/css/calendar.css$" "http://127.0.0.1:9810/css/calendar/calendar.css" [R] # CONTACT RewriteRule "^/contact/js/compile/contact.js$" "http://127.0.0.1:9810/compile?id=contact" [R] RewriteRule "^/contact/css/contact.css$" "http://127.0.0.1:9810/css/contact/contact.css" [R] # TASK RewriteRule "^/task/js/compile/net.bluemind.task.application.closure.js$" "http://127.0.0.1:9810/compile?id=net-bluemind-task-application-closure" [R] RewriteRule "^/task/css/net.bluemind.task.application.closure.css$" "http://127.0.0.1:9810/css/net-bluemind-task-application-closure/net.bluemind.task.application.closure.css" [R]
Redémarrer le proxy
Vérifier en allant sur http://localhost/cal/ par exemple
Développement avec gwt (SuperDevMode)
Remarque | ||
---|---|---|
| ||
BlueMind nécessite une version 2.7.X ou supérieure de GWT. |
Effectuer un clean maven des librairies gwt-libs :
Bloc de code |
---|
$ cd open/ui/gwt-libs
$ mvn clean install |
Configurer le projet à tester de la manière suivante :
Configuration proxy sur la machine de dev pour l'IW par exemple :
http://127.0.0.1: |
8080/signature/js/compile/net.bluemind.ui.signature.application.js;
}
} |
Apache
Bloc de code |
---|
RewriteEngine On # SIGNATURE RewriteRule "^/signature/js/compile/net.bluemind.ui.signature.application.js$" "http://127.0.0.1: |
Exécuter :
http://localhost/setup/index.html
:8080/signature/js/compile/net.bluemind.ui.signature.application.js" [R]
|