@dayflower/tw-lint

中文文档
0.5.3发布于 2026/10/25MITTypeScriptES Module构建来源已验证近 30 天下载 2246

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

中文使用文档
文档目录13 节
  1. 特征
  2. 所需资源
  3. 安装
  4. 使用量
  5. 选项
  6. 配置文件
  7. 退出代码
  8. GitHub 动作
  9. 投入
  10. 产出
  11. 程序化 API
  12. 如何运作
  13. 许可证

tw-lint 缩写

npm version

一个非官方命令行插件 尾风 CSS 由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)第一个:

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

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

安装

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

使用量

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

实例:

# 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> 指向特定文件.

{
  // 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 智能 扩展名.

规则默认说明
invalidScreenerror未知屏幕名称 @screen 指令.
invalidVarianterror未知变体( 如. hvr:underline) (中文(简体) ).
deprecatedAtRulewarning遗产 @variant name(...) 语法用于定义 v4 中的自定义变体; 使用 @custom-variant 换句话说.
invalidTailwindDirectiveerror未知数值在 a @tailwind 指令.
invalidApplyerror使用的类 @apply 无法应用.
invalidConfigPatherrorA 类 theme() 编号 : config() 路径不存在.
cssConflictwarning同一元素上的两个类应用相同的CSS属性(例如. p-2 p-4) (中文(简体) ).
recommendedVariantOrderwarning堆放的变体不按推荐顺序排列.
usedBlocklistedClasswarning项目区块列表中列出的一个类被使用.
suggestCanonicalClasseswarning提出"克能克能克能克能克能克能克".
invalidSourceDirectiveerror无效 @source 指令 (Tailwind v4).

这些由Tailwind CSS语言服务处界定;权威语言 说明是 tailwindCSS.lint.* 设置 尾风 CSS IntelliSense 扩展设置 (上表按同一顺序排列). 这里接受的规则名称是 键下 tailwindCSS.lint。 。 。 .

退出代码

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

GitHub 动作

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

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--quietfalse
fix--fixfalse
fix-dry-run--fix-dry-runfalse
fix-passes--fix-passes10
report-fixed--report-fixedfalse
error-on-no-project--no-error-on-no-project (倒转)true
verbose--verbosefalse

产出

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

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

程序化 API

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 作为无头 LSP 软件 客户端. 服务器执行工程检测( Tailwind) 页:1 财务报告和审定财务报表 页:1),配置装入 并使用 @tailwindcss/language-service 内部——同一台引擎 尾风 CSS 智能 编辑器 扩展名。 该工具收集了由此产生的诊断结果,并将结果报告于 命令行,并可以应用服务器的快取.

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

许可证

麻省理工学院

版本与发布记录

@dayflower/tw-lint 共发布 9 个版本,首次发布于 2026/07/01;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.5.3latest2026/10/2519 天前
0.5.22026/09/181 个月前
0.5.12026/08/063 个月前
0.5.02026/08/033 个月前
0.4.02026/07/034 个月前
0.3.02026/07/024 个月前

关于 @dayflower/tw-lint 的常见问题

@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 和提交记录判断。