Commit 67276de8 authored by Daniel Caillibaud's avatar Daniel Caillibaud

aj doc dev plugins (pnpm link)

parent 50000e7d
......@@ -38,3 +38,8 @@ Installation avec Docker, avec sesalab
@todo créer un docker-compose.sesalab.yml avec un docker/sesalab/Dockerfile
(et rédiger la doc ci-dessous)
Et ensuite ?
------------
cf doc_src/DEV.md et ses voisins…
......@@ -25,3 +25,63 @@ il faut donc lancer dans une autre console le serveur node avec `pnpm run start:
pour qu'il se lance sur le bon port.
Pour lancer deux Sésathèques (pour un usage avec un sesalab à coté), vous pouvez utiliser `pnpm run start:both` (qui va lancer les deux avec _private/config.js et _private/commun.js)
Développement d'un plugin
-------------------------
Ce qui suit est aussi valable pour d'autres dépendances (sesajstools & co).
Pour pouvoir développer une dépendance de sésathèque et avoir le résultat en live dans la sesathèque locale, il faut utiliser `pnpm link` (Attention, ça marche pas avec `npm link`, un très vieux bug de npm qui remonte à npm3)
On va prendre un exemple "défavorable" de dépendance de dépendance, avec sesaeditgraphe, utilisé par le plugin j3p
- On récupère localement les 3 dépôts git, celui de la sesathèque est déjà là, reste les 2 autres
```
# depuis le dossier local sesatheque
cd ..
# (l'url est dans package.json, dans les peerDependencies,
# mais ici on clone via ssh et pas http pour pouvoir faire des push ultérieurement)
git clone git@framagit.org:Sesamath/sesatheque-plugin-j3p.git
# idem pour sesaeditgraphe (cf sesatheque-plugin-j3p/package.json)
git clone git@framagit.org:Sesamath/sesaeditgraphe.git
# on link sesaeditgraphe dans le plugin j3p
cd sesaeditgraphe
pnpm i
# On link ce module (register dans la "base" globale pnpm)
pnpm link
# On va dans le plugin j3p pour utiliser ce dossier local
cd ../sesatheque-plugin-j3p
pnpm install
pnpm link sesaeditgraphe
# et idem pour le plugin j3p dans la sesatheque
pnpm link
# On retourne dans la sesatheque pour l'utiliser
cd ../sesatheque/app/plugins
pnpm link @sesatheque-plugins/j3p
# désormais, on peut développer localement dans le dossier editgraphe et voir le résultat en live dans la sesatheque
# on lance en mode dev + watch (des js client)
cd ../..
# on lance le serveur en mode dev (décale le port)
pnpm run start:dev
# et dans une autre console webpack-dev-server
pnpm run start:devFront
# on peut aller dans le dossier sesaeditgraphe pour y faire des modifs et les voir en live dans le navigateur
```
Pour revenir à une situation "normale" avec des dépendances installées par pnpm (et plus les links vers nos dossiers locaux)
```
# depuis le dossier de la sésathèque
cd app/plugins
pnpm unlink @sesatheque-plugins/j3p
# depuis le dossier sesatheque-plugin-j3p
pnpm unlink sesaeditgraphe
# (on pourrait lancer un `pnpm unlink` pour supprimer le module des modules pouvant être linkés
# mais c'est pas forcément utile, si on veut pouvoir refaire le link plus tard sans avoir à
# refaire ce "register")
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment