Am mai multe pachete publicate pe packagist (extensii pentru Carbon Fields; exemplu). Eh, iar pachetele astea au și niște componente JS care au nevoie să fie compilate.
Momentan fac asta manual, npm run build, proces prin care fișierele din assets/js/components se compilează în assets/js/bundle.js*. Eh, treaba merge ok, doar că… na, nu suntem sălbatici să facem lucrurile manual, nu?
De unde apare problema: cum pot exclude fișierele din git DAR să fie compilate cumva, astfel încât la composer install să fie disponibile? Mă gândeam la un task CI în care păstrez compilatele (artefacte) dar nu știu cum aș putea aborda problema.
Chestia asta presupune rularea locală, iar eu aș vrea să evit treaba asta.
De exemplu, dacă am de făcut o schimbare minoră, aș vrea să pot face asta direct în github, să se compileze JS și să se propage apoi în Composer/Packagist.
Daca packagist nu ofera vreo posibilitate de rulare a npm script (si nu mi s-ar parea normal sa ofere, imho), nu prea vad cum ar fi posibil De asemenea, indiferent de cat de mica e modificarea, ar trebui sa fie prezent si versioning. De unde ar sti composer care ar fi numarul noii versiuni?
De bine de rau, daca publici pachete pentru a fi folosite de altii, putina munca manuala pentru a garanta calitatea pachetelor e necesara. Parerea mea.
Problema e că e manual sau că ai fișiere compilate in git?
Nu greșești însă cu un script de compile care poate fi rulat și manual și de pe un server CI. Serverul CI poate face push dupaia la package repo. Outputul lui ar fi ce e inclus in pachetul tau, și nu neapărat ce se afla in rădăcina git repo.
Problema e că am fișiere compilate în git. Experiența m-a învățat că asta e o idee proastă aproape de fiecare dată, pentru că la fiecare merge cresc șansele de conflicte