File size: 2,108 Bytes
bb59211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env bash
# 检查 web/static/tailwind-generated.css 是否与当前源码同步。
#
# 为什么需要这个:那份 CSS 是**构建产物**,只包含生成时源码里出现过的类。
# 往 templates/ 或 static/js/ 里写了一个没被用过的 Tailwind 类(比如把 p-6
# 改成 px-6 pt-3 pb-6),类就**静默失效** —— 页面照常显示,只是样式没上,
# 而且不报任何错。已经踩过两次:
#   第一次:p-6 拆成 px-6 pt-3 pb-6,左右内边距直接归零,内容贴到侧边栏上
#   第二次:训练页一半的类(w-28 / text-[10px] / accent-blue-500 / divide-y)
#           因为 CSS 停在几周前而全部失效
#
# 做法:用同样的 content 范围重新生成一份到临时文件,和现场那份比对。
# 有差异 = 忘了重新生成(或改了 content 范围)。
#
# 用法:
#   bash scripts/check_tailwind_build.sh          # 只检查
#   bash scripts/check_tailwind_build.sh --fix    # 检查并就地重新生成

set -euo pipefail

HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WEB="$(dirname "$HERE")/web"
OUT="$WEB/static/tailwind-generated.css"
INPUT="$WEB/static/tailwind-input.css"
CONTENT="$WEB/templates/**/*.html,$WEB/static/js/**/*.js"
CLI="$WEB/workflow-studio/node_modules/.bin/tailwindcss"

if [ ! -x "$CLI" ]; then
    echo "找不到 tailwindcss CLI:$CLI"
    echo "先跑 cd web/workflow-studio && npm install"
    exit 2
fi

TMP="$(mktemp -t tw-check-XXXXXX.css)"
trap 'rm -f "$TMP"' EXIT

"$CLI" -i "$INPUT" -o "$TMP" --content "$CONTENT" >/dev/null 2>&1

if cmp -s "$TMP" "$OUT"; then
    echo "tailwind-generated.css 与源码同步 ✓"
    exit 0
fi

if [ "${1:-}" = "--fix" ]; then
    cp "$TMP" "$OUT"
    echo "已重新生成 tailwind-generated.css"
    echo "⚠ 记得 bump app/version.py 的 __version__ —— 它是这个文件的 ?v= 缓存键,"
    echo "  不 bump 的话浏览器会继续用旧的,新样式到不了前端。"
    exit 0
fi

echo "❌ tailwind-generated.css 与源码不一致 —— 有类的样式没生效。"
echo "   跑 bash scripts/check_tailwind_build.sh --fix 重新生成"
exit 1