04
Окт
2019

Как удалить неиспользуемый CSS

Как удалить неиспользуемый CSS

От автора: я уже довольно давно ищу инструмент, который позволит удалить в CSS неиспользуемые стили. Есть особая причина, почему я искала такой инструмент. Она заключается в том, что в настоящее время почти каждый разработчик использует множество CSS-фреймворков и библиотек для быстрой и простой разработки интерфейсов, что делает неизбежным увеличение размера CSS-файлов.

Но задумывались ли вы когда-нибудь, сколько стилей CSS, которые импортируются из этих платформ, вы на самом деле используете? Ну, иногда это даже меньше 20%! Так почему все эти неиспользуемые стили должны быть частью вашего кода? Никаких особых причин на то нет.

Purgecss

Вот где Purgecss приходит на помощь. Это инструмент, который помогает удалить неиспользуемый CSS, и его можно применять как часть вашего рабочего процесса разработки. Вот как Purgecss работает под капотом — ему нужно знать следующее:

Файл CSS, который вы хотите очистить

Файлы, которые ему нужно проверить

Путь назначения нового сгенерированного файла

Итак, из исходного CSS-файла (1) он будет искать стили в ваших HTML-файлах (2), а потом создаст новый CSS-файл (3) только с теми стилями, которые вы на самом деле используете.

Просто. Я уверена, что если вы попробуете его, то сможете уменьшить файл до 60%.

Инструменты сборки

Удивительный факт о Purgecss заключается в том, что вы можете реализовать его в своем рабочем процессе разработки с помощью множества популярных инструментов сборки, таких как:

CLI

JavaScript API

Webpack

Gulp

Rollup

Кроме того, вы также можете использовать его с самыми современными средами JavaScript, такими как:

React

Vue

Next

Nuxt

Как использовать Purgecss

Ниже мы покажем, как реализовать Purgecss с Gulp и Nuxt.js, но вы можете прочитать здесь официальную документацию, чтобы узнать, как его настроить по-разному.

Purgecss с Gulp

Изначально вам необходимо установить пакет с npm или yarn.

npm i -D gulp-purgecss

или

yarn add gulp-purgecss

После этого в gulpfile.js вам нужно импортировать пакет, который вы только что добавили:

const gulp = require('gulp'),
      purgecss = require('gulp-purgecss');

и после этого вам нужно просто создать задачу следующим образом:

gulp.task('purgecss', () => {
  return gulp
    .src('src/**/*.css')
    .pipe( 
      purgecss({
        content: ['src/**/*.html']
      })
    )
    .pipe(gulp.dest('build/'))
})

ps. если вы выполняете задачу последовательно, не забудьте запустить эту задачу после того, как вы сгенерируете HTML-файлы. Если вы этого не сделаете, задача выдаст ошибку.

Purgecss с Nuxt.js

В начале, когда я увидела, что Purgecss работает с HTML-файлами, я расстроилась, потому что в последние месяцы я занимаюсь разработкой различных проектов с помощью Nuxt.js, и для меня очень важно оптимизировать файлы. Но, изучая документацию, я обнаружила, что вы можете выполнить Purgecss с самыми современными JS-фреймворками, такими как React, Vue, Next и Nuxt.

Во-первых, вам нужно установить следующие пакеты в проект с помощью npm или yarn:

npm i --save-dev glob-all purgecss-webpack-plugin

или же

yarn add glob-all purgecss-webpack-plugin

Теперь в nuxt.config.js вам нужно импортировать их (за пределами экспорта по умолчанию):

import PurgecssPlugin from 'purgecss-webpack-plugin'
import glob from 'glob-all'
import path from 'path'

Внутри экспорта по умолчанию вы должны добавить это в конфигурации сборки

build: {
  extractCSS: true,
  extend(config, { isDev, isClient }) {
    if (!isDev && isClient) {
      config.plugins.push(
        new PurgecssPlugin({
          paths: glob.sync([
            path.join(__dirname, './pages/**/*.vue'),
            path.join(__dirname, './layouts/**/*.vue'),
            path.join(__dirname, './components/**/*.vue')
          ]),
          whitelist: ['html', 'body']
        })
      )
    }
  }
}

И все готово! Это все, что вам нужно сделать, чтобы удалить неиспользуемый CSS.

Автор: Alicia Newman

Источник: https://learnworthy.net

Редакция: Команда webformyself.

Share

Тебе может это понравится...