Bonjour la communauté,
J’arrive du monde java et je m’intéresse depuis peu à Rails et Angular 2. Tant qu’à faire, autant partir sur une techno qui pourrait l’emporter dans le futur :)
La question que j’ai porte sur comment intégrer Rails et Angular 2, comment gérer la «compilation» typescript vers javascript et quoi mettre dans mon gestionnaire de version (disons git).
Ma première idée était de partir sur les mécanismes internes de rails (assets plugin) pour gérer angular2 mais en réfléchissant un peu, ça paraît assez prise de tête. De ma compréhension, le plugin est surtout dédié à la gestion de libs javascript, pas bien plus.
Donc je me dis, autant tout mettre dans public et gérer le cycle de vie avec npm, comme proposé sur le 5 mn tuto angular2. Mais là, je vois plusieurs problèmes :
- Le cycle de vie de mon frontend est maintenant décorellé de mon backend
- Les fichiers source ts, de build (package.json et co) sont accessibles dans mon appli déployée
- Les fichiers javascript résultant des ts (.js et .js.map) sont présents dans ma gestion de version et change à chaque version
La solution idéale que je verrais serait de versionner le source de mon frontend dans un dossier dédié, lancer npm depuis rails (s’il existe un gem pour ça) pour générer le code dans public (voire app/assets mais ça peut être plus tricky). Le hic avec cette solution : faut la bonne version de node/npm d’installée sur la machine de build aux côtés de rails, quid de heroku ?
Donc je me dis que finalement, la solution est peut être de faire deux projets différents, un pour le back, l’autre pour le front, avec leurs propres cycles de vie et déployer sur deux ‘serveurs’ différents puis faire pointer le front vers le back.
Comment faites vous ? Quelle est votre vision de la problématique ? (notez qu’on a le même problème en java mais jme dis que les rubyistes sont peut être plus débrouillards que nous :))
Merci