Un exemple minimal d'un WebApp léger dans OCAML.
Il dispose d'une organisation possible de fichiers pour maximiser le partage de code entre le serveur (OCAML natif) et le client (BuckleScript). Certaines des choses partagées sont:
Potentiellement, le dossier shared peut contenir d'autres code partagés comme les fonctions de validation, le traitement des données, etc.
Créer un commutateur local OPAM:
make create-switch Installez dune dans le commutateur nouvellement créé:
opam install duneInstallez toutes les dépendances:
make depsCréer un client:
yarn webpack:dev
Créez et exécutez le serveur:
make runOuvrez le navigateur et allez sur http: // localhost: 3000 /.
Il est également possible de recharger à chaud pendant le développement. Pour cela, démarrez le serveur (pour pouvoir servir les demandes d'API) avec make run , exécuter BuckleScript dans yarn start , puis démarrer le serveur de développement WebPack avec yarn server .
docker-compose -f docker-compose.dev.yml up -d
À l'heure actuelle, l'exemple permet de déployer facilement l'application sur Heroku. Les temps de construction sont plus longs qu'ils ne le devraient, mais j'espère que cela sera bientôt corrigé.
heroku create your_app à partir du dossier de l'applicationcontainer : heroku stack:set containergit push heroku master