【发布时间】:2020-09-03 21:49:07
【问题描述】:
在文件中放置代码(graphql/css/js/html)很棒。
我使用 TailwindCSS 库为我的组件设置样式,并使用 classnames 包动态插入类。
我还使用Prettier 来格式化我的代码。问题是它会将我的类规则格式化为每行一个类,这会使我的文件迅速膨胀。
通缉:
const container = cn("flex", "flex-col", "min-h-lg", "mb-12", "transition-opacity", "duration-500", "ease-in-out");
const buttons = cn(
"inline-grid", "row-gap-5", "col-gap-10", "grid-rows-5", "grid-flow-col",
"sm:grid", "sm:grid-cols-3",
);
const character = cn(
"hidden", "row-span-5", "h-48", "place-self-end", "origin-center",
"animation-once", "animation-ease-out", "animation-0.8s", "animation-fill-forwards",
"sm:block", "sm:animation-lightspeedin",
);
我得到的更漂亮:
const container = cn(
"flex",
"flex-col",
"min-h-lg",
"mb-12",
"transition-opacity",
"duration-500",
"ease-in-out"
);
const buttons = cn(
"inline-grid",
"row-gap-5",
"col-gap-10",
"grid-rows-5",
"grid-flow-col",
"sm:grid",
"sm:grid-cols-3"
);
const character = cn(
"hidden",
"row-span-5",
"h-48",
"place-self-end",
"origin-center",
"animation-once",
"animation-ease-out",
"animation-0.8s",
"animation-fill-forwards",
"sm:block",
"sm:animation-lightspeedin"
);
如您所见,它很快就会失控。
我想知道其他具有类似堆栈的人正在做什么来保持他们的文件可读。我一直在努力寻找少于 100 行的文件,但是使用 prettier+tailwindcss 已经不可能了。
我会选择prettier-ignore-{start,end} if that was supported on js/jsx/ts/tsx files。
你忽略每一条规则吗?
// prettier-ignore
const container = cn("flex", "flex-col", "min-h-lg", "mb-12", "transition-opacity", "duration-500", "ease-in-out");
// prettier-ignore
const buttons = cn(
"inline-grid", "row-gap-5", "col-gap-10", "grid-rows-5", "grid-flow-col",
"sm:grid", "sm:grid-cols-3",
);
// prettier-ignore
const character = cn(
"hidden", "row-span-5", "h-48", "place-self-end", "origin-center",
"animation-once", "animation-ease-out", "animation-0.8s", "animation-fill-forwards",
"sm:block", "sm:animation-lightspeedin",
);
或者您是否将所有类移动到文件底部以使其不那么明显/减少滚动以获取组件的需要?
我想我会同时做这两件事,并在prettier-ignore-{start,end} 可用时将它们移回文件顶部。
【问题讨论】:
-
我很确定这不是更漂亮的规则,它的 eslint。
-
为此使用多行是 imo 最好的方法。从上到下清晰易读。添加或删除一个类时,您可以确切地看到它在 Git 中是哪个类,而不是 Git 说整行被替换。
-
我真的想在 TailwindCSS 中使用 @apply 规则每行一个类,但我不知道该怎么做。
标签: reactjs prettier tailwind-css colocation