Инструмент для удаления неиспользуемого CSS

Для какого-то проекта веб-разработки я начинаю использовать некоторые внешние фреймворки. Я не очень хороший дизайнер, поэтому они очень полезны, но я никогда не использую половину их возможностей.

Итак, чтобы сэкономить место в моих файлах CSS , я ищу инструмент, который способен понять мою архитектуру DOM и мой файл CSS , а затем удалить все бесполезные объявления.

  • Мне все равно, будет ли это веб-приложение, IDE или плагин для браузера или настольное приложение для Linux/Windows.
  • Вход: файлы .html (но если у вас есть другие предложения, мне интересно)
может быть действительно хорошая новая опция ... это плагин Nodes.js/Grunt CSSRazor - просто добавляю в качестве комментария, потому что я только что нашел его и еще не использовал, но он может быть отличным. Если через пару дней тестирования он мне понравится, я напишу о нем отчет.
и нашел лучший, чем CSSRazor. Короткий ответ с uncss

Ответы (6)

Я должен сказать, что я думаю, что этот вариант лучше, чем моя первоначальная рекомендация; моя первоначальная рекомендация была отличной для быстрого просмотра, это лучше для создания пакетов выпуска.

UnCSS и, в частности, то, на чем я основываю рекомендацию, — это оболочка Grunt для UnCSS ; это, конечно же, интегрируется в систему сборки Grunt для большей автоматизации.

Существует довольно много вариантов настройки ( также подробно перечисленных ), и он поддерживает как локальные, так и удаленные файлы css в качестве источников.

При использовании в Grunt я предлагаю использовать его в тандеме с grunt-processhtml , чтобы автоматически заставить ваши страницы ссылаться на новые объединенные и очищенные файлы css.

Как я его использую: (фрагмент моего gruntfile.js)

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uncss: {
        main: {
            options: {
                report: 'gzip'
            },
            files: {
                '<%= grunt.option("outpath") %>/css/cleaned.css' : '<%= src_files_html %>',
            }
        }
    },
    processhtml: {
        main : {
            options: {
                strip: false
            },
            files: [{
                expand: true,
                cwd: '',
                src: '<%= src_files_html %>',
                dest: '<%= grunt.option("outpath") %>'
            }]
        }
    }

а затем в моем html файле у меня есть это:

    <!-- build:css ./css/cleaned.min.css -->
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
    <link href="./css/style.css" rel="stylesheet">
    <!-- /build -->

который превращается в:

<link rel="stylesheet" href="./css/cleaned.min.css">

и CSS намного меньше и лучше для производительности и мобильной пропускной способности.

У меня есть отличный вариант — по крайней мере, он мне очень нравится — хотя это не веб-приложение и не приложение для Linux.

Я рекомендую использование CSS надстройки Firefox — для этого требуется Firefox и надстройка Firefox Firebug .

введите описание изображения здесь

Применение:

  • просто загрузите страницу (через Интернет, локальный хост (как на моем рисунке) или даже просто файловую систему,
  • откройте консоль firebug и перейдите на вкладку использования css
  • НажмитеSCAN
  • просмотрите, и если вы хотите экспортировать очищенный css (надежно работает только из файловой системы - хотя это должно быть небольшое исправление для плагина - что я могу сделать когда-нибудь).

К сожалению, экспортированный очищенный css имеет некоторые недостатки; некоторые правила удалены (хорошо), но некоторые имеют префикс UNUSED.Там должна быть опция IMO, чтобы просто удалить их, но в настоящее время я не верю, что это так (по крайней мере, если я так и не нашел).

В качестве обходного пути я всегда делал просто копирование и вставку в Notepad ++ и использовал поиск и замену с этим регулярным выражением в качестве строки поиска: UNUSED\..*?\}(и выберите . matches newlines) и пустую замену, чтобы просто избавиться от них. - чтобы сделать то же самое в Sublime, которое вы использовали бы (?s)UNUSED\..*?\}в качестве регулярного выражения. Большинство других хороших текстовых редакторов должны иметь аналогичную функциональность.

Очищенный css, который я могу экспортировать, не является чистым: он добавляет UNUSED только перед каждым неиспользуемым оператором. Есть ли какие-либо настройки, чтобы заставить его работать?
Но все же ему нужно будет открыть все страницы своего сайта, чтобы инструмент все зафиксировал. И, возможно, некоторые элементы html не представлены в это время _ (пользователь не вошел в систему, поэтому нет вкладки «Редактировать профиль», следовательно, не используется элемент css #edit_profile) и выполняются все условия.
@Joraid: Да, это правда - хотя на большинстве сайтов вам нужно будет открыть только одну страницу каждого типа, чтобы получить все классы / идентификаторы, но все же это открыто и сканирует каждую страницу / содержимое AJAX. Вы можете использовать эту autoscanфункцию, чтобы уменьшить количество ручной работы.

Я сделал этот браузерный онлайн- инструмент для удаления неиспользуемых CSS .

Функции:

  1. На основе браузера. Нечего устанавливать.
  2. Проверяет CSS по нескольким URL-адресам.
  3. Предоставляет параметры для ручного выбора/отмены выбора элементов в файле CSS.
  4. Можно загрузить и запустить на локальном хосте для неограниченного количества URL-адресов.
  5. Код с открытым исходным кодом

Отказ от ответственности: я являюсь автором кода.

IntelliJ IDEA имеет несколько мощных функций веб-разработки :

Однако вам необходимо иметь Ultimate Edition, чтобы иметь доступ к функциям веб-разработки (бесплатно, если вы руководитель проекта или постоянный коммиттер в проекте с открытым исходным кодом).

ОП попросил инструмент, который УДАЛЯЕТ неиспользуемый css. Есть много бесплатных способов найти неиспользуемый css. У инструментов разработчика Chrome есть один.

Для этого мы написали бесплатный онлайн-инструмент: UnusedCSS .

Он рекурсивно сканирует ваш сайт (по внутренним ссылкам) и находит неиспользуемые селекторы (многие другие инструменты обрабатывают только одну страницу).

Я уже использовал плагин Firebug CSS Usage в нескольких проектах раньше — единственный недостаток в том, что вам нужно вручную просматривать весь сайт, чтобы получить точную карту того, какие стили используются.

Однако это даст вам упрощенные версии ваших файлов css, которые вы можете использовать для замены ваших текущих таблиц стилей.

Добро пожаловать на Stack Exchange рекомендаций по программному обеспечению! Этот пост не содержит достаточно информации, чтобы считаться качественным ответом. Пожалуйста , прочитайте наше обсуждение того, что делает ответ высоким, чтобы увидеть, сможете ли вы включить некоторые из этих улучшений в свой ответ, иначе он будет удален.