新闻详情

新闻详情

首页 / 资讯中心 / 详情

Svelte用户看过来:@shadcn/lint配置指南与模板Lint踩坑全解

发布时间:2026/10/1 21:16:25来源:尧图网络
Svelte用户看过来:@shadcn/lint配置指南与模板Lint踩坑全解
Svelte用户看过来shadcn/lint配置指南与模板Lint踩坑全解【免费下载链接】lintAn agent-first linter for Tailwind design systems. Write design system rules that agents can verify.项目地址: https://gitcode.com/gh_mirrors/lint3/lintshadcn/lint是一款专为 Tailwind 设计系统打造的面向 AI 代理的 Lint 工具支持 React、Svelte 和 Vue。对 Svelte 用户来说它可以检查.svelte模板里的class、style、class:name指令等写法并在报错时直接给出基于你组件变体和主题的修复建议。下面这份指南带你从零配置并避开模板检查中最常见的几个坑。先认识一下shadcn/lint 能帮你抓什么与普通 Lint 不同它的错误信息自带设计系统语境。比如你给Button写了classp-4它不会只说不允许而是告诉代理Button 自己管间距应该用size变体或者用 margin 控制外围空间。它内置 6 条核心规则全部支持 Svelte 模板规则检查内容no-restyle用 className 给设计系统组件换皮肤no-raw-colors裸调色板颜色如bg-pink-500no-arbitrary-values任意值如p-[13px]no-inline-styles内联样式和style元素no-unknown-classesTailwind 生成不了的类名require-static-classesLint 读不懂的动态 class 值规则细节见 docs/rules.md工作原理见 docs/how-it-works.md。Svelte 项目最快配置方法ESLint前置要求Node.js 20.19ESLint 9.30。 第一步安装依赖npm install -D shadcn/lint eslint typescript-eslint/parser svelte-eslint-parser 第二步创建eslint.config.mjs。如果你的项目已用eslint-plugin-svelte保留它的 parser 配置把下面的 plugin 和 rules 加到同一个 block 即可import { plugin as shadcn } from shadcn/lint import tsParser from typescript-eslint/parser import { defineConfig } from eslint/config import svelteParser from svelte-eslint-parser export default defineConfig([ { files: [**/*.svelte], languageOptions: { parser: svelteParser, parserOptions: { parser: tsParser }, }, plugins: { shadcn }, rules: { shadcn/no-restyle: [error, { allow: [layout] }], }, }, ])运行npx eslint .就生效了。Svelte 模板由svelte-eslint-parser解析官方文档见 docs/svelte.md。 小贴士给.ts文件再加一个单独用tsParser的 block组件外的tv、cn调用也能被检查到。踩坑全解Svelte 模板 Lint 的 5 个高频问题坑一用 Oxlint 检查模板里却什么都查不到这是最典型的坑。Oxlint 的 JS 插件 API 目前只给到script块不解析 Svelte 模板标记所以模板里的class...它根本看不到这是 Oxlint 的能力限制官方会在运行时打印一次警告说明。✅ 正确姿势模板检查走 ESLintOxlint 可以继续负责其他文件。如果只想让 Oxlint 跳过.svelte避免告警在配置里加{ ignorePatterns: [**/*.svelte] }坑二组件名按文件名算不按导入别名算card-title.svelte就是CardTitle不管你在模板里写成Card.Title还是Title。这意味着你在 React 项目里写好的 contract 可以原样搬过来contracts: [{ pattern: ^CardTitle$, allow: [layout, typography] }]变体tv、cva从组件自己的script和script module里读取$props()接收的class会被当作组件自身输入不误报。坑三$lib别名解析依赖 tsconfig$lib别名通过 SvelteKit 生成的tsconfig.json解析。注意在第一次运行svelte-kit sync之前会回退到src/lib。如果新项目的组件识别异常先跑一次 sync。坑四改了组件/主题Lint 结果纹丝不动ESLint 的--cache会跳过未改动文件但那些文件用了你改过的组件/主题。排查时先不带缓存跑一遍见 docs/troubleshooting.mdnpx eslint .编辑器集成场景下直接重启 lint 进程。另外components.json指向的主题文件路径错误时主题无法加载no-unknown-classes会退化为弱化检查——看到警告先修它别依赖看似干净的结果。坑五style块不在检查范围.svelte里的style块是纯 CSSshadcn/lint 不读它请交给 CSS 类 Lint 工具svelte:element这类动态元素也没有已知组件身份no-restyle不适用但颜色令牌规则仍会检查其 class。Svelte 模板里哪些写法能被读到模板覆盖面很全基本不用绕开完整表格见 docs/svelte.md静态串classp-4、文本表达式混合classp-4 {active ? a : b}数组 / 对象 /cn()辅助函数调用指令写法class:bg-primary{active}、style:color{tone}展开{...{ class: p-4 }}模板变量会跨一跳回溯到script里的值跨文件的 wrapper 组件把class或{...rest}转发给设计系统组件也会继承目标组件的契约。仓库里的完整 Svelte 示例可直接参考 packages/lint/test/fixtures/svelte-project/例如其中button.svelte用tv定义了variant/size变体报错时就会提示可用尺寸。没有 components.json也能用不装 shadcn/ui 也没关系。没有components.json时主题自动取导入 Tailwind 的那份样式表组件则通过正则配置识别settings: { shadcn: { componentImports: [^\\$lib/components/], }, }最后一步让 AI 代理替你修配置完成后把 lint 命令加进package.json脚本再在AGENTS.md里写上一句After making changes, runnpm run lintand fix all errors代理改完代码就会自动跑检查并修掉设计系统违规。整套自动化思路可参考 SETUP.md。延伸阅读Svelte 完整文档docs/svelte.md规则与配置选项docs/rules.md常见问题排查docs/troubleshooting.md工作原理主题、变体、wrapper 追踪docs/how-it-works.md框架能力对照表README.md【免费下载链接】lintAn agent-first linter for Tailwind design systems. Write design system rules that agents can verify.项目地址: https://gitcode.com/gh_mirrors/lint3/lint创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

PHP 8.2中新增的openssl_cipher_iv_length函数怎么获取加密向量长度 2026/10/1 22:20:07

PHP 8.2中新增的openssl_cipher_iv_length函数怎么获取加密向量长度

前言用 openssl_encrypt() 写加解密时,最常见的两类故障是:加密时报 openssl_encrypt(): IV passed is 16 bytes long which is longer than the 12 expected by selected cipher, truncating 这样的警告,或者解密出来是一串乱码。两次都指向…

阅读更多 →
工业Agent与实时控制:能力边界、延迟账本与务实架构 2026/10/1 22:20:06

工业Agent与实时控制:能力边界、延迟账本与务实架构

1. 先泼一盆冷水:工业Agent的“实时控制”到底卡在哪“实时控制的工业Agent”这个说法,最近一年在圈子里被反复提起。做AI的人听了兴奋,觉得大模型终于要下车间了;做自动化的人听了皱眉,觉得这帮搞软件的又在对PLC指手…

阅读更多 →
IronClaw震撼首发安装详细教程:从零跑通TaoToken统一Key通道 2026/10/1 22:20:06

IronClaw震撼首发安装详细教程:从零跑通TaoToken统一Key通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
OP-TEE在AArch64上的RPC机制深度解析 2026/10/1 22:20:05

OP-TEE在AArch64上的RPC机制深度解析

1. 项目概述:为什么在AArch64上深挖OP-TEE的RPC机制是绕不开的硬核关卡OP-TEE学习笔记这个标题看似平实,但“AArch64 RPC(二)”这六个字背后,实际踩中了当前嵌入式安全开发最真实、最频繁、也最容易卡壳的痛点。我带过…

阅读更多 →
微信小程序+SSM+MySQL民宿短租系统:部署链路与权限设计详解 2026/10/1 22:20:05

微信小程序+SSM+MySQL民宿短租系统:部署链路与权限设计详解

简介:面向毕业设计场景的民宿短租小程序完整项目,基于微信小程序SSMMySql架构开发,适合需要完成课程设计或快速入门前后端分离开发的计算机专业学生。系统围绕民宿信息展示、在线预订、后台管理三条主线展开,包含用户端小程序、房…

阅读更多 →
Win7精简版:老机续命的底层系统优化方案 2026/10/1 22:19:58

Win7精简版:老机续命的底层系统优化方案

1. 这不是普通Win7镜像,而是一台“老机续命手术刀” 你手边那台2010年出厂的ThinkPad T410,CPU是i5-520M,内存只有4GB,机械硬盘转速5400rpm——它早该进博物馆了。但如果你还在用它跑CAD 2012画电路图、用Keil uVision5编STM32固…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉