Как я настроил свой рабочий процесс для обрезки Tailwind CSS с помощью PurgeCSS и простой настройки PostCSS (без использования веб-пакета)
Недавно я решил переместить CSS своего блога наПопутный ветер.
Tailwind - интересный фреймворк, потому что вместо набора виджетов, таких как Bootstrap или другие, он предоставляеткоммунальные услуги.
Я считаю, что это очень перекликается с тем, как я работаю с HTML.
Я рассказал, как я используюПопутный ветер с Vueв предыдущем посте, но без инструмента для сборки, может быть трудно правильно настроить правильную настройку, и я решил написать этот пост в блоге, даже просто для того, чтобы я вспомнил позже 🙃
В этом посте я объясню, как использовать Tailwind слюбойвид проекта.
Установить Tailwind
Первый шаг - установить Tailwind, используя npm или yarn:
npm init -y
npm install tailwindcss
Создайте файл конфигурации
Затем используйте эту команду для создания файла конфигурации:
npx tailwind init
Это создастtailwind.config.js
в корне вашего проекта, добавив базовую конфигурацию Tailwind.
Настроить PostCSS
Теперь вам нужно настроитьPostCSSконфигурации, чтобы убедиться, что Tailwind работает. Добавлять:
module.exports = {
plugins: [
require('tailwindcss'),
require('autoprefixer')
]
}
на вашpostcss.config.js
. Создайте его, если его не существует.
Также для удобства добавил автопрефиксер, он вам наверняка понадобится. Установите его с помощьюnpm install autoprefixer
.
О, также убедитесь, что вы установили PostCSS (npm install -g postcss-cli
)
Создайте файл CSS Tailwind
Теперь создайте файл CSS там, где хотите, например, вtailwind.css
и добавить
@tailwind base;
@tailwind components;
@tailwind utilities;
Создайте команду сборки
Теперь откройте свойpackage.json
файл и добавьте раздел скриптов, если у вас его нет:
"scripts": {
"build:css": "postcss src/tailwind.css -o static/dist/tailwind.css"
}
Построить попутный ветер
Теперь из командной строки запуститеnpm run build:css
создаст окончательный файл CSS.
Полученный файл находится вstatic/dist/tailwind.css
(вы можете изменить местоположение в приведенной выше команде).
Автоматически регенерировать CSS при изменении файла
Каждый раз, когда я что-то меняю в HTML-коде темы (хранящемся вlayouts
папку в моем случае), я хочу регенерировать CSS и запустить очистку и минификацию, которые я настроил.
Как это сделать?
Установитеwatch
пакет npm:
npm install watch
и добавитьwatch
сценарий к вашемуpackage.json
файл. У тебя уже былоbuild:css
как и раньше, мы просто добавляем скрипт, который следит за папкой макетов и запускаетbuild:css
при каждом изменении:
"scripts": {
"build:css": "postcss src/tailwind.css -o static/dist/tailwind.css",
"watch": "watch 'npm run build:css' ./layouts"
}
Теперь бегиnpm run watch
и вам должно быть хорошо!
Обрезать размер файла
Если вы проверите, то получится огромный файл. Даже если вы не используете какой-либо класс Tailwind в своем HTML, вся структура включена по умолчанию, потому что это конфигурация по умолчанию вtailwind.js
файл.
Они решили включить все, чтобы люди не упускали что-то. Это выбор дизайна. Теперь нам нужноудалить вещи, и оказывается, что мы можем использовать purgecss для удаления всех неиспользуемых классов CSS.
Я также хочу удалить все комментарии из CSS и сделать его как можно меньше.cssnanoэто то, что мы ищем.
Мы можем автоматизировать это! Сначала установите эти утилиты:
npm install cssnano
npm install @fullhuman/postcss-purgecss
Затем мы добавляем это в наш файл конфигурации PostCSS.postcss.config.js
:
const purgecss = require('@fullhuman/postcss-purgecss')
const cssnano = require('cssnano')
module.exports = {
plugins: [
require(‘tailwindcss’),
require(‘autoprefixer’),
cssnano({
preset: ‘default’
}),
purgecss({
content: [’./layouts//*.html’, './src//.vue’, './src/**/.jsx’],
defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || []
})
]
}
В разработке избегайте слишком большой обработки
Почему? Каждый добавляемый вами шаг замедляет цикл обратной связи при разработке. Я использую эту конфигурацию только для добавления префиксов и удаления комментариев в продакшене:
postcss.config.js
const purgecss = require('@fullhuman/postcss-purgecss')
const cssnano = require('cssnano')
module.exports = {
plugins: [
require(‘tailwindcss’),
process.env.NODE_ENV === ‘production’ ? require(‘autoprefixer’) : null,
process.env.NODE_ENV === ‘production’
? cssnano({ preset: ‘default’ })
: null,
purgecss({
content: [’./layouts//*.html’, './src//.vue’, './src/**/.jsx’],
defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || []
})
]
}
Скачать мою бесплатнуюСправочник CSS
Больше руководств по css:
- Руководство по Flexbox
- Учебник по CSS Grid
- Переменные CSS (настраиваемые свойства)
- Введение в PostCSS
- Свойство поля CSS
- Как центрировать элемент с помощью CSS
- Системные шрифты CSS
- Как напечатать HTML со стилем
- Вводное руководство по переходам CSS
- Учебник по CSS-анимации
- Введение в CSS
- Руководство по CSS
- Как настроить Tailwind с PurgeCSS и PostCSS
- Шпаргалка по попутному ветру
- Как непрерывно вращать изображение с помощью CSS
- Как сделать таблицу адаптивной с помощью CSS
- Как отлаживать CSS путем деления пополам
- Селекторы CSS
- CSS-каскад
- Специфика CSS
- Селекторы атрибутов CSS
- Цвета CSS
- Единицы CSS
- URL-адрес CSS ()
- CSS Типографика
- Коробочная модель CSS
- Свойство CSS position
- CSS Media Queries и адаптивный дизайн
- Запросы функций CSS
- CSS преобразования
- Как стилизовать списки с помощью CSS
- Префиксы поставщиков CSS
- Наследование CSS
- Псевдоклассы CSS
- Псевдоэлементы CSS
- Стилизация HTML-таблиц с помощью CSS
- Свойство CSS Display
- Функция CSS calc ()
- CSS Границы
- Импорт файла CSS с помощью @import
- Обработка ошибок CSS
- CSS фильтры
- CSS Размер окна
- CSS-фоны
- Комментарии CSS
- CSS шрифты
- CSS Padding
- CSS свойство float и очистка
- CSS нормализация
- Свойство CSS z-index
- Как отключить выделение текста с помощью CSS
- Как разместить элемент в нижней части контейнера с помощью CSS
- Как инвертировать цвета с помощью CSS
- Адаптивные предварительные теги в CSS
- Адаптивные вставки видео YouTube
- Каковы хорошие значения контрольной точки CSS для адаптивного дизайна?
- Как выровнять центр в flexbox