Skip to content

components README §Setup 第 1 步仍是 Tailwind 3 写法(叫读者写 tailwind.config.js),而该包是 v4 CSS-first、全仓没有这个文件 #3780

Description

@yinlianghui

实施 #3750(修 Peer Dependencies 区块 9 行失真)时,在同一个文件里紧挨着被修的那一行发现的越界问题,据实另立。#3750 的文件面只有具名的 peer ,§Setup 是结构性散文,越界即停。

事实(复核于 origin/main = d229dfa7b)

packages/components/README.md 第 41 行 tailwindcss ^3.0.0 已由 #3750 按实测收窄为 ^4.2.1(该包是 Tailwind 4 专属)。但紧接其后的 §Setup 第 1 步没跟:

## Setup

### 1. Configure Tailwind

Add to your `tailwind.config.js`:

    module.exports = {
      content: [
        './src/**/*.{js,jsx,ts,tsx}',
        './node_modules/@object-ui/components/**/*.{js,ts,jsx,tsx}'
      ],
      // ... your config
    }

这是 Tailwind 3 的惯用形,在 v4 下三处都不成立:

  1. v4 不再自动加载 tailwind.config.js —— 必须在 CSS 里显式 @config opt-in。读者照做会写出一个被静默忽略的文件。
  2. content 数组在 v4 里由自动 source detection 取代,额外路径用 @source。而 v4 的自动检测默认排除 node_modules,所以这段配置想解决的问题(扫描本包的 class)在 v4 下恰恰需要另一种写法。
  3. 本包自己就没有 tailwind.config.js:packages/components/ 下不存在该文件,postcss.config.js 加载 v4 专属的 @tailwindcss/postcss,src/index.css 首行 @import 'tailwindcss' 并使用 @theme / @custom-variant 两个 v4 专属 at-rule。

本仓其它文档已经在用 v4 写法 —— content/docs/utilities/runner.mdx:235 教的是「Add a Tailwind @source line in src/index.css」。即 §Setup 第 1 步是相对本仓自身现行实践的滞留,不是待定问题。

为什么门禁看不见

#3750 把断言加宽到了 Peer Dependencies 区块的每一行,并且给 TOOLCHAIN 补了 tailwindcss 词界。两者都只判版本字面量区块内的行。§Setup 这段既不在区块里,也不含版本字面量(tailwind.config.js 是文件名,content 是键名),因此加宽后依然完全在门禁视野之外。这属于「散文描述的 API 形状过时」,和版本棘轮是两类事实。

影响

README 随 npm tarball 发布(filesREADME.md),这是消费者的首份安装指南。照第 1 步做的读者会创建一个 Tailwind 4 不读的配置文件,然后在「为什么我的 class 没生成」上排查 —— 而真正需要的可能只是第 2 步(@import '@object-ui/components/dist/style.css',预构建 CSS)。第 1 步很可能是整段冗余,不只是写法过时:值得连带判定它在 v4 + 预构建 CSS 的路径下还需不需要存在。

修法方向(不预判)

  • 若第 1 步在 v4 下仍必要:改写为 @source 惯用形,并说清 node_modules 默认不被扫描;
  • 若预构建 CSS 已经覆盖:整段删除,只留 §2 §3。

需要先判定「消费者到底要不要扫描本包源码」,这是文档语义决策而非机械替换,故不在 #3750 里顺手改。

已搜重

tailwind config Setup READMEtailwind.config.js v4 两组关键字搜过本仓开放 issue,零命中。#3750 是同一文件的同一根因(README 停留在 tailwind 3)但另一半面:它修版本行,这条修散文。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions