如何在Biome中配置kebab-case命名规则以兼容TanStack Router的动态路由?
如何在Biome中配置kebab-case命名规则以兼容TanStack Router的动态路由?
我之前也碰到过完全一样的问题!TanStack Router的动态路由用$前缀的命名方式,刚好和Biome严格的kebab-case命名规则撞了车。其实只要调整一下Biome的正则匹配规则,就能让两者和平共处,不用妥协任何一方的特性。
你之前尝试用match选项但没成功,大概率是正则的写法不对。正确的思路是让Biome的kebab-case规则只应用于非动态路由的文件,也就是排除所有以$开头的.tsx文件。
直接把你的Biome配置改成下面这样:
{ "style": { "useTemplate": "error", "useFilenamingConvention": { "level": "error", "options": { "strictCase": true, "requireAscii": true, "filenameCases": ["kebab-case"], "match": "^(?!\\$).+\\.tsx$" } } } }
我来拆解一下这个配置的关键部分:
- 正则
^(?!\\$).+\\.tsx$用了负向前瞻,意思是“只匹配不以$开头的.tsx文件” - 这样一来,像
$itemId.tsx这类TanStack Router的动态路由文件就会被自动排除在kebab-case规则的检查之外 - 其他所有普通的组件文件(比如
item-list.tsx、user-profile.tsx)仍然会严格遵循kebab-case的命名要求
如果你的动态路由文件都集中在某个特定目录下(比如src/routes/),还可以把正则写得更精准,避免影响到其他目录的文件:
"match": "^src/routes/(?!\\$).+\\.tsx$"
这样配置后,你既可以保留Biome对大多数文件的kebab-case命名约束,又能正常使用TanStack Router的动态路由功能,再也不会收到恼人的命名错误提示了。
内容来源于stack exchange
相关产品推荐
相关产品推荐

