Minifikace JavaScriptu


12-03-2012 00:00 - Zdroj: php.vrana.cz
Článek vyšel na serveru Zdroják. Přiznám se, že cizí knihovny nepoužívám moc ochotně. Nejdřív strávím spoustu času hledáním té, která by mi vyhovovala. Pak často zjistím, že mi stejně něčím nevyhovuje. Když to opravím, pošlu změnu autorovi a on ji přijme, tak čekám na vydání nové verze. Když vyjde, tak musím otestovat, jestli se neporouchalo něco jiného. Cizí knihovny taky často mají závislosti (např. na Javě), které já vyžadovat nechci. Často si proto radši něco spíchnu sám, protože s tím mám nakonec míň starostí, strávím tím míň času a dělám to, co mě baví mnohem víc, než hledat, zkoušet a domlouvat. Když jsem hledal minifikátor JavaScriptu pro použití v Admineru, tak jsem se podíval na stávající řešení a vybral JSMin pro PHP. Ten mi v zásadě vyhovoval: neměl žádné závislosti, dělal skoro přesně to, co jsem chtěl, aktualizace probíhaly hladce. Navíc v podobný čas jako Adminer přešel ze SVN na Git, takže i provázání repozitářů bylo bez problémů. Než… Než se dobrá duše rozhodla Adminer zpřístupnit jako balík Debianu. JSMin má totiž celkem běžnou licenci, ale s nezvyklým dovětkem: “The Software shall be used for Good, not Evil.” A podle dogmatiků to není dost svobodné, protože chudáci zlořádi teď nemůžu využívat JSMin pro páchání zla. Dokonce by se projekty využívající JSMin neměly hostovat na Google Code. Když by autor změnil slovo shall na should, tak by se všechno vyžehlilo, ten o tom ale nechce ani slyšet (a já se mu nedivím). Takže jsem byl slušně požádán, jestli bych nemohl JSMin z Admineru vyhodit. A i když existují jiné kvalitní nástroje, především Google Closure Compiler, tak než to zase řešit, rozhodl jsem se jako obvykle, že si něco spíchnu sám. JsShrink Úlohu jsem vyřešil pomocí regulárního výrazu. Ten přeskakuje všechno, co má v JavaScriptu zvláštní význam (řetězce ... - Pokračovat...
addthis





Poslední příspěvky z blogu:
php.vrana.cz



Zašlete svůj blog
Požadavky na Blog
Ochrana osobních údajů
Kontakty

This site uses Thumbshots previews