Herramienta para eliminar CSS no utilizado

Para algún proyecto de desarrollo web, estoy empezando a usar algunos marcos frontend externos. No soy un buen diseñador por lo que son muy útiles, pero nunca exploto la mitad de sus capacidades.

Entonces, para ahorrar espacio en mis archivos CSS , estoy buscando una herramienta que pueda comprender mi arquitectura DOM y mi archivo CSS , y luego eliminar todas las declaraciones inútiles.

  • No me importa si se trata de una aplicación web, un IDE o un complemento de navegador, o una aplicación de escritorio Linux/Windows.
  • Entrada: archivos .html (pero si tiene otra sugerencia, me interesa)
puede tener una nueva opción realmente agradable... es un complemento CSSRazor de Nodes.js/Grunt ; solo lo agrego como un comentario porque lo acabo de encontrar y aún no lo he usado, pero puede ser excelente. Si me gusta en un par de días de prueba, haré un artículo sobre él.
y encontré uno mejor que CSSRazor. Respondiendo brevemente con uncss

Respuestas (6)

Debo decir que creo que esta opción es mejor que mi recomendación original; mi recomendación original fue excelente para una búsqueda rápida, esto es mejor para hacer paquetes de lanzamiento.

UnCSS y específicamente en lo que estoy basando la recomendación es el envoltorio The Grunt para UnCSS ; que, por supuesto, se integra en el sistema de compilación Grunt para una gran automatización.

Hay bastantes opciones de personalización ( enumeradas en detalle también ), y admite archivos css locales y remotos como fuentes.

Si lo usa en Grunt , sugiero usarlo junto con grunt-processhtml para hacer que su (s) página (s) haga referencia automáticamente a los nuevos archivos css concatenados y limpios.

Cómo lo uso: (un recorte de mi 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") %>'
            }]
        }
    }

y luego en mi archivo html tengo esto:

    <!-- 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 -->

que se transforma en:

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

y el CSS es mucho más pequeño y mejor para el rendimiento y el ancho de banda móvil.

Tengo una gran opción, al menos me encanta, aunque no es una aplicación web ni una aplicación de Linux.

Recomiendo el uso de CSS del complemento de Firefox ; requiere Firefox y el complemento Firebug de Firefox .

ingrese la descripción de la imagen aquí

Uso:

  • simplemente cargue la página (a través de la web, localhost (como en mi imagen) o incluso solo el sistema de archivos,
  • abre la consola de firebug y haz clic en la pestaña de uso de css
  • Hacer clicSCAN
  • revise y si desea exportar css limpio (solo desde el sistema de archivos funciona de manera confiable, aunque eso debería ser una solución menor para el complemento, lo que puedo hacer en algún momento).

Desafortunadamente, el css limpio exportado tiene algunas molestias; algunas reglas se eliminan (buenas) pero algunas tienen el prefijo UNUSED.Debería haber una opción IMO para simplemente eliminarlas también, pero actualmente no creo que haya (al menos si es así, nunca lo he encontrado).

Como solución alternativa, lo que siempre he hecho es simplemente copiar y pegar en Notepad ++ y usar la búsqueda y reemplazar con esta expresión regular como la cadena de búsqueda: UNUSED\..*?\}(y seleccionar . matches newlines) y un reemplazo en blanco para simplemente deshacerme de ellos. - para hacer lo mismo en Sublime que usaría (?s)UNUSED\..*?\}como expresión regular. La mayoría de los otros buenos editores de texto deberían tener una funcionalidad similar.

El css limpio que puedo exportar no está limpio: solo agrega UNUSED antes de cada declaración no utilizada. ¿Hay alguna configuración que hacer para que funcione?
Pero aún así, deberá abrir todas las páginas de su sitio para que la herramienta registre todo. Y tal vez algunos de los elementos html no se presenten en ese momento _ (el usuario no inició sesión, por lo tanto, no hay una pestaña Editar perfil, por lo tanto, no se usó el elemento css #edit_profile) y ejecute todas las condiciones.
@Joraid: Sí, eso es cierto, aunque con la mayoría de los sitios solo necesitaría abrir una página de cada tipo para obtener todas las clases/identificadores, pero aún así está abierto y escanea cada página/contenido AJAX. Puede usar la autoscanfunción para que sea mucho menos trabajo manual.

He creado esta herramienta de eliminación de CSS no utilizada en línea basada en navegador .

Características:

  1. Basado en navegador. Nada que instalar.
  2. Comprueba CSS contra múltiples URL.
  3. Proporciona opciones para seleccionar/deseleccionar manualmente elementos en el archivo CSS.
  4. Se puede descargar y ejecutar en su host local para direcciones URL ilimitadas
  5. Código de fuente abierta

Descargo de responsabilidad: soy el autor del código.

IntelliJ IDEA tiene algunas potentes funciones de desarrollo web :

Sin embargo, debe tener Ultimate Edition para tener acceso a las funciones de desarrollo web (gratis si es el líder del proyecto o un comprometido habitual en un proyecto de código abierto).

El OP solicitó una herramienta que ELIMINAR css no utilizado. Hay muchas opciones gratuitas para encontrar css no utilizado. Las herramientas de desarrollo de Chrome tienen una.

Escribimos una herramienta en línea gratuita para esto: UnusedCSS

Rastrea recursivamente su sitio web (siguiendo enlaces internos) y encuentra selectores no utilizados (muchas otras herramientas procesan una sola página).

He usado el uso de CSS del complemento Firebug en algunos proyectos antes; el único inconveniente es que tiene que navegar manualmente por todo el sitio para obtener un mapa preciso de los estilos que se usan.

Sin embargo, le dará versiones simplificadas de sus archivos css que puede usar para reemplazar sus hojas de estilo actuales.

¡Bienvenido al Intercambio de pilas de recomendaciones de software! Esta publicación no contiene suficiente información para ser considerada una respuesta de alta calidad. Lea nuestra discusión sobre qué hace que una respuesta sea de alta calidad para ver si puede incorporar algunas de estas mejoras en su respuesta; de lo contrario, se eliminará.