Уменьшение размера CSS с помощью PurgeCSS

429bb479 5843 4a7e a9e4 790ac9d55b2c HTML

PurgeCSS позволяет сократить размер CSS кода проекта на 60% и более. Долгое время я искал инструмент, который мог бы избавить мой CSS от неиспользуемых стилей.

Зачем это нужно?

Большинство разработчиков (включая меня) используют различные CSS фреймворки и библиотеки для упрощения создания элементов интерфейсов. Это приводит к значительному увеличению размеров CSS файлов. Однако, на практике часто используется менее 20% импортированных стилей. Поэтому нет необходимости сохранять невостребованные стили.

Что такое PurgeCSS?

PurgeCSS — это инструмент, который удаляет неиспользуемые стили из CSS файлов. Он может стать частью вашей среды разработки и значительно сократить размер CSS.

Как это работает?

Для работы с PurgeCSS вам потребуются:

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

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

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

PurgeCSS интегрируется с различными популярными инструментами сборки, такими как:

  • CLI
  • JavaScript API
  • Webpack
  • Gulp
  • Rollup

Работа с JS фреймворками

PurgeCSS можно использовать с современными JavaScript фреймворками, такими как:

  • React
  • Vue
  • Next
  • Nuxt

Как работать с PurgeCSS

Рассмотрим примеры интеграции PurgeCSS с Gulp и Nuxt.js. Остальные методы интеграции можно изучить в официальной документации.

PurgeCSS и Gulp

  1. Установите пакет PurgeCSS с помощью npm или yarn:
npm i -D gulp-purgecss

или

yarn add gulp-purgecss

2. Импортируйте пакет в вашем gulpfile.js:

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

3. Создайте задачу:

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

Важно: Запускайте эту задачу после создания HTML файлов, иначе могут возникнуть ошибки.

PurgeCSS и Nuxt.js

  1. Установите необходимые пакеты:
npm i --save-dev glob-all purgecss-webpack-plugin

или

yarn add glob-all purgecss-webpack-plugin

2. Импортируйте пакеты в nuxt.config.js:

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

3. Добавьте их в сборку:

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']
})
);
}
}
}

Заключение

PurgeCSS — это мощный инструмент для оптимизации CSS файлов. Использование PurgeCSS с инструментами сборки и современными фреймворками позволяет значительно уменьшить размер CSS, улучшая производительность и уменьшая время загрузки страниц. Экспериментируйте с этим инструментом, чтобы добиться наилучших результатов.

Оцените статью