Чи є утиліта для видалення невикористаного css

Все геніальне просто.

Автоматичні утиліти - це добре, але вони спрацюють тільки в простих випадках, коли у вас є статична сторінка і стилі для неї, і просто перевіряються які використовуються, а які ні. Справа трохи ускладнюється, коли у вас кілька сторінок - вам вже треба визначити стилі, які не використовуються ні на одній з них. Все стає складніше, якщо ви використовуєте Ajax, і у вас перемикаються стану сторінок - тоді треба перевіряти кожен такий випадок. На мій погляд, це більш-менш реально, тільки якщо у вас вже є якийсь тестіровочного скрипт, який проганяє сайт по всім цим станам.

Навесні, займаючись питанням вичищення невикористовуваних стилів, я пішов іншим шляхом. Я зібрав всі імена класів, які зустрічаються в файлах стилів, і шукав, згадуються вони хоч раз в шаблонах або в JS-файлах. Це не рятує від випадків, коли є шаблон, але реально він вже не використовується, але тим не менш дає якийсь результат. В результаті з'ясувалося, що тоді з п'яти тисяч імен класів в файлах стилів півтори тисячі зустрічалися в шаблонах або JS-файлах.

Однак, і тут були нюанси. Наприклад, в шаблонах були класи виду skin->. де> - ім'я використовується варіанти кастомізації. Або щось на зразок color>. box->. Зазвичай, вони були легко помітні в списку імен класів, як ряд йдуть майже однакових імен, однак, це треба було відстежувати.

Був і інший нюанс: ім'я класу для накладення, що визначає його зовнішній вигляд, передавалося разом з Ajax-відповіддю, і теж не зустрічалося в шаблонах або в JS-файлах. У підсумку, по-хорошому, треба перевіряти не тільки шаблони, а весь проект в цілому. Якщо у вас для імен використовуються префікси (на кшталт b- * або i- * як в Яндексі) або абревіатури, то навряд чи будуть проблеми, але звичайні слова можуть навіть зустрічатися в тексті (у нас основний текст в шаблонах англійською мовою).

У підсумку, автоматика тут може бути застосована тільки в дуже обмеженому числі випадках, а в реальних проектах результатів можна досягти, тільки застосувавши певні зусилля. Благо, кожне окреме ім'я класу вимагає трохи часу, і все це можна зробити за термін близько тижня, плюс-мінус в залежності від масштабу проекту (хоча плюс навряд чи, якщо ви не гігант на кшталт Яндекса або Гугла).

Да уж, доведеться грати в гру Знайшов \ не знайшов.
Автоматичними штуками проганяти повністю по всьому проекту, потім прибирати з пошуку 100% знайдені, а не знайдені прочищати руками.
На рахунок прогону по всіх сторінках - в більшості випадків сторінки однотипні і досить було б вказати посилання на реально унікальні посилання і радіти життю :)

Я в процесі писав простенькі скрипи, в основному з grep з параметрами, але на жаль це все втрачено :(.

Схожі статті