# @dayflower/tw-lint 中文文档

规范地址：https://npmcn.com/package/%40dayflower/tw-lint/

版本：0\.5\.3
npm 元数据更新时间：2026-10-25T07:56:51.723Z
中文译文更新时间：2026-11-13T05:08:42.849Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dayflower/tw-lint
原文对照：https://npmcn.com/package/%40dayflower/tw-lint/?lang=original
项目主页：https://github.com/dayflower/tw-lint#readme
源码仓库：https://github.com/dayflower/tw-lint

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：160 kB，10 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：7 个
- 首次发布：2026-06-30T23:57:10.940Z
- 最新版本发布：2026-10-25T07:56:51.329Z
- 近 30 天下载量：2246（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 9 个）

## 中文简介

一个非官方的Tailwind CSS linter CLI由Tailwind CSS语言服务器提供动力.

## 安装

```sh
npm install @dayflower/tw-lint
```

也可以使用：`pnpm add @dayflower/tw-lint`、`yarn add @dayflower/tw-lint`、`bun add @dayflower/tw-lint`

## README

# tw-lint 缩写

[![npm version](https://img.shields.io/npm/v/@dayflower/tw-lint.svg)](https://www.npmjs.com/package/@dayflower/tw-lint)

一个非官方命令行插件 [尾风 CSS](https://tailwindcss.com/) 由Tailwind CSS语言工具提供动力.

> \[注\] 这个 **非正式** 项目。 它不附属于、经核可或 由Tailwind实验室赞助. "Tailwind CSS"是Tailwind Labs Inc的商标.

## 特征

-   检测由 Tailwind CSS IntelliSense 所浮出的问题,包括: `cssConflict`, (中文(简体) ), `invalidApply`, (中文(简体) ), `invalidScreen`, (中文(简体) ), `invalidVariant`, (中文(简体) ), `invalidConfigPath`, (中文(简体) ), `invalidTailwindDirective`, (中文(简体) ), `invalidSourceDirective`, (中文(简体) ), `recommendedVariantOrder`, (中文(简体) ), `usedBlocklistedClass`, (中文(简体) ), `deprecatedAtRule`, (中文(简体) ), `suggestCanonicalClasses`。 。 。 .
-   调整每项规则的严厉性(`ignore` 编号 : `warning` 编号 : `error`)通过 `--severity <rule=level>` 或者一个配置文件.
-   与 Tailwind CSS v3 合作(`tailwind.config.js`)和 v4(基于 CSS 配置) 工程——该版本由语言服务器自动检测.
-   Lints HTML、JSX/TSX、Vue、Svelte、Astro、PHP和其他模板语言, 还有CSS文件.
-   人可读文本输出, 机器可读 `--format json`,以及 `--format github` gitHub 动作说明.
-   `--fix` 编号 : `--fix-dry-run` 应用语言服务器的快取.
-   CI友好出口代码和 `--max-warnings`。 。 。 .

## 所需资源

-   节点.js 22
-   工作空间中的 Tailwind CSS 项目 :
    -   **页:1**(单位:千美元) `tailwind.config.{js,cjs,mjs,ts}` 财务报告和审定财务报表 `tailwindcss` 安装在 项目的 `node_modules`。 。 。 .
    -   **页:1**: CSS 进口 Tailwind (例如:. `@import "tailwindcss";`(中文(简体) ) 财务报告和审定财务报表 `tailwindcss` 安装在项目中 `node_modules`。 。 。 .

语言服务器加载项目本身 `tailwindcss` (和它的配置)从 `node_modules` 用来计算诊断。 这意味着 **目标项目 依赖关系必须已经安装** {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}在倒地之前 {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}我还没说 在 CI 中运行您的安装 步骤(例如:. `npm ci`)第一个:

```sh
npm ci
npx tw-lint "src/**/*.{tsx,html}"
```

如果没有安装依赖关系,则没有检测到 Tailwind 工程 无问题.

## 安装

```sh
npm install --save-dev @dayflower/tw-lint
```

## 使用量

```sh
tw-lint [globs...] [options]
```

实例:

```sh
# Lint everything (default globs) in the current project
tw-lint

# Lint specific files
tw-lint "src/**/*.{tsx,html}"

# Machine-readable output
tw-lint "src/**/*.tsx" --format json

# Treat class conflicts as errors
tw-lint --severity cssConflict=error

# Apply fixes
tw-lint "src/**/*.html" --fix

# Apply fixes in a single pass (do not loop)
tw-lint "src/**/*.html" --fix --fix-passes 1
```

单身时 `class` 属性有重叠的修饰(例如 冲突实用性的去除和犬类重写),只有 非重叠编辑可以在一个通道中应用. `--fix` 因此,最多为 `--fix-passes` 通过( 默认) `10`,像 ESLint 的自定义,重新应用修正 直到一切改变。 设定 `--fix-passes 0` 或者说 `--fix-passes 1` 保留 旧的单行道行为.

固定问题一旦适用即从报告中消失(只显示一个计数,如: 还有ESLint). 过 `--report-fixed` 将每个应用的固定线也列于 a `Fixed` 节(以及 `--format json`页:1 `fixedMessages` 每个文件的阵列 :

```
Fixed
src/Button.tsx
  4:17  fixed  Replace with 'w-xl'  suggestCanonicalClasses
  4:27  fixed  Delete 'p-4'         cssConflict
✔ 2 issues fixed
```

### 选项

| 选项 | 说明 |
| --- | --- |
| `--cwd <dir>` | 项目根目录( 默认: 当前目录) . |
| `--format <text|json|github>` | 输出格式( 默认 ): `text`) (中文(简体) ). `github` 发布 GitHub 动作说明 . |
| `-c, --config <file>` | 接口配置文件的路径(见下文) . |
| `--severity <rule=level>` | 克服规则严重性(`ignore`编号 :`warning`编号 :`error`)可重复. 覆盖配置文件 . |
| `--tailwind-config <file>` | 强制一个特定的 Tailwind 配置文件 . |
| `--max-warnings <n>` | 如果警告超过这个数字, 退出非零 . |
| `--quiet` | 只报告错误. |
| `--fix` | 对文件应用修正并写入更改 . |
| `--fix-dry-run` | 不写入更改而计算修正 . |
| `--fix-passes <n>` | 修复时最大修补通过( 默认) `10`· ; `0` 或者说 `1` = 单传. |
| `--report-fixed` | 列出应用的单个修正(默认关闭). |
| `--no-error-on-no-project` | 退出 `0` 改为 `2` 当检测不到 Tailwind 工程时. |
| `--verbose` | 打印语言服务器日志到 stderr . |

### 配置文件

规则断开( 以及一些其他设置) 可以在配置文件中坚持, 所以 他们不需要每次通过命令线。 默认情况下 linter 在工程根中查看, 顺序为:

1.  `tw-lint.config.json`
2.  `.tw-lintrc.json`
3.  (单位:千美元) `"tw-lint"` 键入 `package.json`

使用 `-c, --config <file>` 指向特定文件.

```jsonc
{
  // Rule severities: "ignore" | "warning" | "error"
  "rules": {
    "cssConflict": "error",
    "recommendedVariantOrder": "ignore"
  },
  // Attributes/functions whose string values are scanned for classes
  "classAttributes": ["class", "className", "tw"],
  "classFunctions": ["clsx", "cva", "cn"],
  // Map extra language ids to a known one (e.g. for custom templates)
  "includeLanguages": { "plaintext": "html" },
  // Equivalent to --tailwind-config
  "tailwindConfig": "./tailwind.config.ts",
  // Equivalent to --fix-passes (max fix passes; 0 or 1 = single pass)
  "fixPasses": 10,
  // Equivalent to --report-fixed (list the fixes applied)
  "reportFixed": false
}
```

> 这些规则是 _尾风 CSS 智能_ 提示设置 (单位:千美元)`tailwindCSS.lint.*`) (中文(简体) ). 他们是 **没有** 属于你的部分 `tailwind.config.js`, (中文(简体) ), 它只配置了Tailwind的设计系统.

`--severity` 按规则覆盖配置文件,并且 `--tailwind-config` 覆盖 `tailwindConfig`。 。 。 .

#### 现行规则

每个值都是 `"ignore"`, (中文(简体) ), `"warning"` 或者说 `"error"`。默认值与 _尾风 CSS 智能_ 扩展名.

| 规则 | 默认 | 说明 |
| --- | --- | --- |
| `invalidScreen` | `error` | 未知屏幕名称 `@screen` 指令. |
| `invalidVariant` | `error` | 未知变体( 如. `hvr:underline`) (中文(简体) ). |
| `deprecatedAtRule` | `warning` | 遗产 `@variant name(...)` 语法用于定义 v4 中的自定义变体; 使用 `@custom-variant` 换句话说. |
| `invalidTailwindDirective` | `error` | 未知数值在 a `@tailwind` 指令. |
| `invalidApply` | `error` | 使用的类 `@apply` 无法应用. |
| `invalidConfigPath` | `error` | A 类 `theme()` 编号 : `config()` 路径不存在. |
| `cssConflict` | `warning` | 同一元素上的两个类应用相同的CSS属性(例如. `p-2 p-4`) (中文(简体) ). |
| `recommendedVariantOrder` | `warning` | 堆放的变体不按推荐顺序排列. |
| `usedBlocklistedClass` | `warning` | 项目区块列表中列出的一个类被使用. |
| `suggestCanonicalClasses` | `warning` | 提出"克能克能克能克能克能克能克". |
| `invalidSourceDirective` | `error` | 无效 `@source` 指令 (Tailwind v4). |

这些由Tailwind CSS语言服务处界定;权威语言 说明是 `tailwindCSS.lint.*` 设置 [尾风 CSS IntelliSense 扩展设置](https://github.com/tailwindlabs/tailwindcss-intellisense#tailwindcssvalidate) (上表按同一顺序排列). 这里接受的规则名称是 键下 `tailwindCSS.lint`。 。 。 .

### 退出代码

-   `0` ——无出错(和内部警告) `--max-warnings`,如果设置).
-   `1` 发现错误,或 `--max-warnings` 超过.
-   `2` - 插件本身失败,或者没有检测到 Tailwind 工程 已挂起的文件( 无已挂起 ) 。 过 `--no-error-on-no-project` 治疗 后者为 `0` 换句话说.

## GitHub 动作

`tw-lint` 作为可再使用的 GitHub 动作的船。 报告的问题作为内在 关于跑和拉请求的说明. 就像CLI一样, **安装目标 项目的依赖关系** 因此语言服务器可以检测工程.

```yaml
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: npm ci # install the project's own tailwindcss
      - uses: dayflower/tw-lint@v1
        with:
          globs: "src/**/*.{tsx,html}"
          max-warnings: "0"
```

### 投入

匹配的 CLI 选项的每个输入地图 :

| 投入 | CLI 选项 | 默认 |
| --- | --- | --- |
| `globs` | 姿势花纹 | (无) |
| `working-directory` | `--cwd` | `.` |
| `config` | `--config` | (无) |
| `severity` | `--severity` (每行一线) | (无) |
| `tailwind-config` | `--tailwind-config` | (无) |
| `max-warnings` | `--max-warnings` | (无) |
| `quiet` | `--quiet` | `false` |
| `fix` | `--fix` | `false` |
| `fix-dry-run` | `--fix-dry-run` | `false` |
| `fix-passes` | `--fix-passes` | `10` |
| `report-fixed` | `--report-fixed` | `false` |
| `error-on-no-project` | `--no-error-on-no-project` (倒转) | `true` |
| `verbose` | `--verbose` | `false` |

### 产出

`error-count`, (中文(简体) ), `warning-count`,以及 `fix-count`。 。 。 .

这个 `github` 输出格式也可直接通过CLI从中获取 `tw-lint --format github` 如果你愿意自己在工作流程中运行二进制.

## 程序化 API

```ts
import { runLint, createTailwindSettings } from '@dayflower/tw-lint'

const summary = await runLint({
  cwd: process.cwd(),
  patterns: ['src/**/*.tsx'],
  settings: createTailwindSettings({ rules: { cssConflict: 'error' } }),
})

console.log(summary.errorCount, summary.warningCount)
```

## 如何运作

这个工具驱动器不是重新执行 lint 规则 [`@tailwindcss/language-server`](https://www.npmjs.com/package/@tailwindcss/language-server) 作为无头 [LSP 软件](https://microsoft.github.io/language-server-protocol/) 客户端. 服务器执行工程检测( Tailwind) **页:1** 财务报告和审定财务报表 **页:1**),配置装入 并使用 [`@tailwindcss/language-service`](https://www.npmjs.com/package/@tailwindcss/language-service) 内部——同一台引擎 _尾风 CSS 智能_ 编辑器 扩展名。 该工具收集了由此产生的诊断结果,并将结果报告于 命令行,并可以应用服务器的快取.

1.  双胞胎 `tailwindcss-language-server --stdio` 连接JSON -RPC.
2.  初始化工作空间并响应服务器的 `workspace/configuration` 请求带有线性设置.
3.  打开每个匹配的文档以启动工程初始化, 等待 初始化项目,然后强制每个文件重新验证 收集公布的诊断材料.
4.  对于 `--fix`,请求 `textDocument/codeAction` 快速修补并应用 返回编辑.

## 许可证

[麻省理工学院](https://npmcn.com/package/%40dayflower/tw-lint/LICENSE)

## 常见问题

### @dayflower/tw-lint 是什么？

一个非官方的Tailwind CSS linter CLI由Tailwind CSS语言服务器提供动力\.

### 如何安装 @dayflower/tw-lint？

在项目目录运行 npm install @dayflower/tw-lint，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 tw-lint，可以用 npx tw-lint 直接运行。

### @dayflower/tw-lint 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @dayflower/tw-lint 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @dayflower/tw-lint 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @dayflower/tw-lint 可以商用吗？

@dayflower/tw-lint 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @dayflower/tw-lint 的下载量有多少？

根据 npm 官方下载统计，@dayflower/tw-lint 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,246 次，日均约 75 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dayflower/tw-lint 还在维护吗？

最新版本 0\.5\.3 发布于 2026/10/25（19 天前）；至今共发布 9 个版本，其中过去 12 个月发布了 9 个；首次发布于 2026/07/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

