Files
CloudSSH/frontend/postcss.config.cjs
TanXinandTanXin 681aac551a release: v1.3.1 — 本地构建 Tailwind 并稳定安全回归测试 (#45)
## 版本概述

发布 CloudSSH v1.3.1。

本版本重点完善安全回归测试的确定性,并将生产环境 Tailwind CSS 从运行时 CDN
迁移为本地构建,提升页面加载稳定性、供应链安全性和自部署一致性。

## 主要变更

### 安全验证与回归测试

- 修复 `cf_verified` 篡改测试可能未真正改变签名的问题,避免用例偶发进入后续连接流程。
- 改为根据原字符生成必然不同的签名,并显式断言篡改结果。
- 收紧验证 Token 的输入格式:
  - 必须为严格的两段式结构。
  - 时间戳必须为安全整数。
  - HMAC 签名必须为 64 位十六进制字符串。
- 补充签名长度错误、非十六进制和缺少分隔符等畸形 Token 回归用例。
- 保持安全降级行为:无效 Token 稳定回退到 Turnstile 验证。

### Tailwind CSS 本地构建

- 移除生产页面中的 `cdn.tailwindcss.com` 运行时脚本和内联 Tailwind 配置。
- 使用 Tailwind CSS 3、PostCSS 和 Autoprefixer 接入 Vite 本地构建。
- 保留 `@tailwindcss/forms` 和 `@tailwindcss/container-queries` 插件。
- 将现有主题变量、颜色映射和字体配置迁移至独立 Tailwind 配置文件。
- 使用基于配置文件目录的绝对路径,确保从仓库根目录或前端目录执行构建时结果一致。
- 新增生产产物回归测试,验证:
  - 主题工具类正确生成。
  - 响应式工具类正确生成。
  - 表单插件样式正确生成。
  - 生产 HTML 不再包含 Tailwind CDN 和运行时配置。

### 文档与版本

- 更新中英文 README 中的前端技术栈说明。
- 更新项目开发规范和 Tailwind 构建注意事项。
- 项目版本号升级至 `1.3.1`。
- 按 Keep a Changelog 规范更新 `CHANGELOG.md`。

## 影响

- 消除 Tailwind 运行时 CDN 依赖,减少外部请求和浏览器端运行时编译。
- 提升弱网、跨境网络和自部署环境中的页面加载稳定性。
- 降低生产环境供应链风险,并为后续实施严格 CSP 提供基础。
- 消除安全测试假阳性,使畸形验证 Token 能够稳定、可预测地被拒绝。

## 验证结果

- `pnpm test`:21 个测试文件、404 个测试用例全部通过。
- `pnpm run build:frontend`:生产前端构建及 Worker HTML 内联成功。
- 浏览器生产页面验证:本地 CSS、主题色、字体、表单和布局正常生效。
- 页面不再加载 `cdn.tailwindcss.com`,不存在运行时 `tailwind.config`。
- `git diff --check`:通过。

## 备注

- 构建仍存在原有的 JavaScript 单包体积和动态/静态导入提示,不影响本次发布。
- Google Fonts、Material Symbols 和 Cloudflare Turnstile 属于独立外部资源,本次未调整。

---------

Co-authored-by: TanXin <tanxin@example.com>
2026-07-27 17:55:20 +08:00

11 lines
183 B
JavaScript

const path = require('node:path');
module.exports = {
plugins: {
tailwindcss: {
config: path.join(__dirname, 'tailwind.config.cjs'),
},
autoprefixer: {},
},
};