fix: CI/CD сборка tailwind для прода (устранена ошибка версий)
HYPN0 Build and Push Docker Image / build-and-push (push) Successful in 1m23s
HYPN0 Build and Push Docker Image / build-and-push (push) Successful in 1m23s
This commit is contained in:
+20
-48
@@ -1,9 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
# Сборка Tailwind CSS v3 для фронтенда HYPN0
|
||||
# Сборка Tailwind CSS v4 для фронтенда HYPN0
|
||||
# Запуск из корня проекта: bash ./scripts/build-tailwind.sh
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
|
||||
|
||||
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
TAILWIND_DIR="$PROJECT_ROOT/frontend-assembly/tailwind"
|
||||
OUTPUT_DIR="$PROJECT_ROOT/public/static/css"
|
||||
@@ -18,8 +20,6 @@ fail() {
|
||||
}
|
||||
|
||||
# cleanup() — удаляет временные файлы при любом завершении скрипта.
|
||||
# Все рабочие файлы (postcss.config.js, tailwind.config.js, input.css)
|
||||
# создаются здесь и удаляются в EXIT/INT/TERM.
|
||||
cleanup() {
|
||||
rm -rf "$TAILWIND_DIR/node_modules" \
|
||||
"$TAILWIND_DIR/postcss.config.js" \
|
||||
@@ -37,67 +37,39 @@ if [[ ! -f "$TAILWIND_DIR/package.json" ]]; then
|
||||
fail "Не найден package.json: $TAILWIND_DIR/package.json"
|
||||
fi
|
||||
|
||||
if [[ ! -f "$TAILWIND_DIR/package-lock.json" ]]; then
|
||||
fail "Не найден package-lock.json: $TAILWIND_DIR/package-lock.json"
|
||||
fi
|
||||
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
# --- tailwind.config.js ---
|
||||
log "Создаю tailwind.config.js"
|
||||
cat > "$TAILWIND_DIR/tailwind.config.js" <<'TWEOF'
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: [
|
||||
'../../hypn0/templates/**/*.html',
|
||||
'../../hypn0/hypn0_site/**/*.py',
|
||||
],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
TWEOF
|
||||
|
||||
# --- postcss.config.js ---
|
||||
log "Создаю postcss.config.js"
|
||||
cat > "$TAILWIND_DIR/postcss.config.js" <<'PCEOF'
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
}
|
||||
PCEOF
|
||||
|
||||
# --- input.css ---
|
||||
log "Создаю input.css"
|
||||
log "Создаю input.css для Tailwind v4"
|
||||
cat > "$TAILWIND_DIR/input.css" <<'EOF'
|
||||
/*
|
||||
input.css — точка входа для сборки prod-версии Tailwind CSS v3.
|
||||
input.css — точка входа для сборки prod-версии Tailwind CSS v4.
|
||||
|
||||
Собирается через `npm run build` (PostCSS) в
|
||||
Собирается через @tailwindcss/cli в
|
||||
файл public/static/css/tailwind.min.css, который подключается в _base.html
|
||||
для production (когда settings.DEBUG == False).
|
||||
|
||||
Здесь же подключаются кастомные стили из hypn0/templates/css/tailwind-custom.css —
|
||||
того же самого файла, который в dev-режиме подключается через {% include %} внутрь
|
||||
инлайнового <style type="text/tailwindcss"> в _base.html.
|
||||
|
||||
Это обеспечивает единый источник кастомных стилей для dev и prod.
|
||||
Здесь же подключаются кастомные стили из hypn0/templates/css/tailwind-custom.css.
|
||||
*/
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
@import "tailwindcss";
|
||||
|
||||
@source "../../hypn0/templates";
|
||||
@source "../../hypn0/hypn0_site";
|
||||
|
||||
@import "../../hypn0/templates/css/tailwind-custom.css";
|
||||
EOF
|
||||
|
||||
log "СОБИРАЮ Tailwind CSS v3"
|
||||
log "СОБИРАЮ Tailwind CSS v4"
|
||||
cd "$TAILWIND_DIR"
|
||||
|
||||
log 'Устанавливаю зависимости через npm ci'
|
||||
npm ci
|
||||
# Если package-lock.json отсутствует или устарел, используем npm install / npm ci
|
||||
if [[ -f "$TAILWIND_DIR/package-lock.json" ]]; then
|
||||
log 'Устанавливаю зависимости через npm install'
|
||||
npm install --no-audit --no-fund
|
||||
else
|
||||
log 'Устанавливаю зависимости через npm install'
|
||||
npm install --no-audit --no-fund
|
||||
fi
|
||||
|
||||
log 'Собираю CSS'
|
||||
npm run build
|
||||
|
||||
Reference in New Issue
Block a user