CalcGuide · 技术博客主页 / 一页纸学习计划
🟠

样式与构建:CSS Modules / Tailwind / Vanilla Extract / Vite / SWC / Turbopack

分类:前端与客户端 · 路径:docs/topics/styling-and-tooling/README.md

#react#vite#tailwind#css#build#turbopack

学会现代样式方案、构建工具链、TypeScript / ESLint / Prettier、monorepo 与性能预算

父主题

React 应用开发:从组件到 SSR 与测试

子主题(0)

样式与构建:CSS Modules / Tailwind / Vanilla Extract / Vite / SWC / Turbopack

0. 元信息

1. 学习路线

CSS Modules / Tailwind / Vanilla Extract / shadcn-ui → Vite / esbuild / SWC
  → Next.js / Remix / Astro 框架级构建 → TypeScript / ESLint / Prettier
  → monorepo(pnpm + Turborepo / Nx)→ 性能预算与 RSC 构建限制

2. 阶段周数分配

精简子主题不固定周数。按 §3 顺序完成,每段都能跑通“按需加载的样式 + 增量构建”。

3. 九阶段表

阶段核心知识实践产出学会标准
1CSS Modules、PostCSS、CSS nesting多组件 demo解释 scoped className
2Tailwind:utility-first、theme、plugins、arbitrary values卡片 / 列表能配 Tailwind v4 配置
3Vanilla Extract / Linaria:零运行时 CSS-in-TSdesign token demo解释编译时样式
4shadcn/ui、Radix、Headless UI复制粘贴组件库知道“组件即代码”模式
5Vite:esbuild 依赖预构建、HMR、Rollup 产物生产构建报告能读 dist 拆包
6SWC / Turbopack / RspackNext.js 15 dev / build比较 dev 启动 / HMR
7TypeScript:tsconfig strict、JSX 类型、生成 d.ts强类型组件库解释 noUncheckedIndexedAccess
8ESLint flat config、eslint-plugin-react-hooks、Prettier、lint-staged提交钩子提交前自动 fix
9pnpm workspaces、Turborepo、changesets多包 monorepo一次构建所有包、发布版本

4. 第一周任务

精简版省略固定日程。优先完成“CSS Modules + Tailwind 并存 + Vite 构建 + ESLint + Prettier”。

5. 阶段通用验收

精简版省略;产物有 build / lint / typecheck / format 四个脚本能跑。

6. 最终验收

精简版省略;以 §3 第 9 阶段和 §9.4 案例口述检查为准。

7. 综合项目

精简版省略;成果并入父主题电商 SPA 的“UI 库 + 工具链 + monorepo 雏形”。

本主题贡献

8. 推荐资料

精简版省略;使用 §9.3 和 §9.6 Source。

9. 学习资料汇聚(v0.3 自包含)

9.1 背景与动机

样式与构建是“看不见的工程债”高发区。选错样式方案(运行时 CSS-in-JS + SSR 框架)会拖慢首屏;选错构建(Webpack + RSC)会卡 dev server。React 19 + App Router 把“构建能做什么”推到新边界:RSC 要求 bundler 知道 server / client 边界。

样式选型原则:

构建选型:本地起手用 Vite;产品级 + SSR/RSC 用 Next.js;内容站 / 岛屿用 Astro;大规模 monorepo 选 Turborepo / Nx。

9.2 概念地图

flowchart LR
  Style[样式方案] --> CSSM[CSS Modules]
  Style --> TW[Tailwind]
  Style --> VE[Vanilla Extract]
  Style --> SCSS[CSS-in-JS 运行时]
  Style --> Lib[shadcn/ui / Radix]
  Build[构建] --> Vite
  Build --> Next[Next.js]
  Build --> Remix[Remix]
  Build --> Astro
  Build --> Rspack
  Build --> SWC
  Build --> Turbopack
  Tooling[工具链] --> TS[TypeScript]
  Tooling --> ESLint
  Tooling --> Prettier
  Tooling --> Husky
  Tooling --> Changesets
  Monorepo --> pnpm
  Monorepo --> Turbo[Turborepo]
  Monorepo --> Nx

9.3 基础知识讲解

9.3.1 论文 / 规范

9.3.2 书 / 文档

9.3.3 博客

9.3.4 人物

9.3.5 方法

9.4 经典问题与经典案例

#问题为什么重要最简答案或证据
1dev 启动慢依赖预构建太大optimizeDeps.include 显式声明
2HMR 不生效组件默认导出 + 命名导出差异用命名导出 + React Fast Refresh
3Tailwind 类不生效动态拼接的类被 purge走 safelist / 完整字符串
4CSS-in-JS 在 RSC 报错用了 window / document改 CSS Modules / Vanilla Extract
5build 产物体积爆炸整包打到一个 chunkmanualChunks / 路由级 lazy
6TypeScript 与 ESLint 配置冲突tsconfig 严格但 lint 允许typescript-eslint 推荐配置
7monorepo 链接失败用了 npm 而非 pnpm改 pnpm workspaces
8changesets 不发包缺 CI 步骤.github/workflows/release.yml
9主题切换闪烁SSR 渲染前不知主题<html data-theme> 在 server 端决定
10postcss 解析报错用了未注册的语法postcss-nesting / 用 Lightning CSS

9.5 学习难点

9.6 技术标准与接口

9.6.1 Entity

名称版本组织状态
Vite5+Evan You / VoidZero活跃
esbuild0.20+Evan You活跃
SWC1+Vercel活跃
Turbopack0.x / 稳定中VercelNext.js 集成
Rspack1+ByteDance活跃
Next.js15+Vercel活跃
Tailwind CSS4+Tailwind Labs活跃
Vanilla Extract0.xSeek / 社区活跃
TypeScript5+Microsoft活跃
ESLint9+ flat configOpenJS Foundation活跃
Prettier3+Prettier team活跃
pnpm9+pnpm team活跃
Turborepo2+Vercel活跃

9.6.2 Scope

9.6.3 Structure

9.6.4 Ecosystem

9.6.5 Depth Tiers

层级可观察能力
L0知道 Vite / Tailwind 存在
L1看得懂配置文件
L2能改 vite / tailwind / next 配置
L3能调通产物体积、HMR、CSS 树摇
L4能写自定义 plugin / 维护 design system

本计划目标:L3

9.6.6 Source

10. 常见误区

11. 所有知识点分类

  1. 编程语言 2. 数据结构与算法 3. 计算机基础 4. 工程技术 5. Web 与后端 6. 前端与客户端 7. 数据与人工智能 8. 项目与职业能力 9. 安全与可靠性

本计划归属:前端与客户端 主 + 工程技术 辅。


直接依赖(1)

查看知识图谱