Autor Zpráva
cheli
Profil
Zdravím,
potřebuju poradit jaký zvolit nástroj pro kompilaci less souborů v CMSku. Mám nějakou zkušenost s gruntem a pak s php skriptem, který byl zatím více vyhovující, ale při rozsáhlejším seznamu less souborů dochází při kompilaci po změně k vyčerpání memory_limitu (128M). Jedná se o http://lessphp.gpeasy.com/.

Kompilace přes php skript byla vyhovující kvůli tomu, že se provedla pouhým načtením webu. Nemusel se o to starat sám kóder. Konkrétní less soubory je napojili dle zapnutých modulů v systému (navázáno na php konstanty).

Jak to řešíte vy? Je lepší tahle knihovna http://leafo.net/lessphp/?
juriad_
Profil *
Projdi si issues na githubu týkající se memory:
https://github.com/leafo/lessphp/issues/479
https://github.com/leafo/lessphp/issues/346
versus:
https://github.com/oyejorge/less.php/issues/43

Budou na tom asi podobně; jako benchmark používají Bootstrap. Prostě zkus oba.
cheli
Profil
juriad:
Nenašel sem tam řešení. Možná jen to, že budou mí ty knihovny problémy s novějšíma verzema Bootstrap nebo si povolit větší memory limit, ale to mě moc neláká, protože pokud se CMS dá na nějakej cizí hosting, kde to budou mí zakázaný, tak bude problém.

Tu knihovnu leafo jsem zatim nezkoušel, protože už jí nevyvíjí a nejspíš bude kompatibilní se starou Bootstrapou.

Zatim to vypadá, že se budu muset spokojit s kompilací typu Grunt. Pokud by někoho ještě něco napadlo, čím by se to dalo vyřešit, tak se klidně ozvěte.
Keeehi
Profil
cheli:
Já to řeším kompilací ještě před nasazením, takže na server jdou rovnou CSS soubory.
cheli
Profil
Keeehi:
Takhle to asi řeší hodně lidí, ale zatim si nad tim nedokážu představit drobnou úpravu na běžícím webu. Musel bych si stáhnout všechny kompilované less soubory, zkompilovat a poslat zpátky. Takhle jen upravím potřebný soubor a nemusím se starat, jaké další soubory by tam měli být. U toho less php gpeasy mi tam dělá hlavně problém ten cache, při kterým to ztroskotá po změně. Pokud si promažu adresář, do kterýho skript vytváří výsledný css soubor a další (má tam ještě nějaké .cache soubory pro svoji funkce), tak už to pak vykompiluje správně. Zřejmě to předělam, aby mi tu kompilaci nedělal úplně sám automaticky (kontrola změn souborů, atd.), ale zkusim, aby mi to vykompiloval až na zavolání nějaký url např. Mohlo by to pro něj být pak míň náročnější, když už nebude kontrolovat ty změny v souborech a nemusel by vyčerpat ten memory_limit.

Edit: Pokud bych to potřeboval pro konkrétní projekt, tak bych to řešil klidně přes ten grunt (u jednoho webu to tak mám), ale potřebuju to např. pro XXX webů, který mají napojený jiné less soubory.
Keeehi
Profil
cheli:
Takhle to asi řeší hodně lidí, ale zatim si nad tim nedokážu představit drobnou úpravu na běžícím webu. Musel bych si stáhnout všechny kompilované less soubory, zkompilovat a poslat zpátky.
No lesa soubory stejně musíš mít lokálně pro úpravu. Navíc je stahovat nemusíš, měl bys je mít přece na disku od poslední úpravy. Takže místo toho abys na web nahrál upravené less soubory, tak provedeš lokálně kompilaci a nahraješ tam nově vygenerované css. Takže jediný krok navíc je ruční spuštění kompilace. Což se ale dá i automatizovat takže to nepřináší žádnou práci navíc.

Ta automatizace je dost podstatná. Osobně to mám tak, že mám celý projekt v Git repozitářů na githubu a celý proces nasazení je pro mě jen push do masteru. Od té doby jsou veškeré operace automatické. Server je informován o změně, stáhne si nové soubory, provede kompilaci less a js souborů. Vytvoří novou složku kam nahraje zkompilovaný projekt a nakonec přehodí symlink na tu novou složku a od té doby funguje už ta nová verze. Výhody jsou snad jasné. Těžší může být to zprovoznit hostingu kde veškeré operace musejí být provedeny s php a není možné si tam nainstalovat git a ten jen z php volat. Ale možné to je.
cheli
Profil
Keeehi:
No lesa soubory stejně musíš mít lokálně pro úpravu. Navíc je stahovat nemusíš, měl bys je mít přece na disku od poslední úpravy.
Soubory mít nemusim, protože ten web mohl vyrábět někdo jinej a mezitim na tom dělalo třeba několik lidí servisní práce a já tam pak přijdu třeba jen upravit nějakou nějakou mezeru, tak tu drobnost upravim a nahraju rovnou na ostrý web. Kompilované soubory navíc nejsou z jednoho adresáře, ale z různých míst struktury (Např: modules/gallery/style.css, theme/light/less/layout.less), takže by jejich hledání nějaký čas zabralo. Celkově kompiluju +- 25 souborů když počítam bootstrap.less.
Kdybych na tom dělal sám a všechny projekty bych měl ve verzovacím systému, tak bych to nejspíš řešil podobně. Nějaký šablonový weby, který jsou na světe během 2 hodin a vyrábí to jeden člověk, tak neverzujeme. Pak tam přijde nějakej další kóder za půl roku přidat třeba nějakej banner, tak si na tuhle úpravu do 10 minut nestahuje celej web z repozitáře, protože by to pak trvalo třeba 20 minut.

U větších projektů tam ten význam vidim, ale hledam nějaké univerzální řešení i pro menší weby bez verze, pro rychlé servisní úpravy. Důležité je, aby less tu práci spíš usnadnil, než zkomplikoval (i menším webům). Zatim používáme SVN. Myslel sem, že Git se ovládá jen z příkazovýho řádku, ale zřejmě se dá volat i přes php, jak píšeš. Budu se na to muset podívat, co to umí.
Keeehi
Profil
Zjistil jsem že i menší projekty si zaslouží verzování. Ono to ničemu neškodí. A i kdyby byl projekt tak malý, že by verzování nepotřeboval, pak pravděpodobně nevyužije ani plně možnosti less a stačilo by čisté css.

cheli:
Myslel sem, že Git se ovládá jen z příkazovýho řádku, ale zřejmě se dá volat i přes php, jak píšeš. Budu se na to muset podívat, co to umí.
Já to taky tak využívám. Skrz PHP jen volám příkazy shellu. Což na hostingu povolené nebývá a i kdyby bylo, tak tam nemusí být Git. Ale jsem si jistý, že někdo určitě vytvořil nějakou knihovnu čistě v rámci PHP která umožňuje se dostat k souborům v repozitářích na githubu. To pak bude fungovat i na hostingu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: