我在 CSS-IN-JS 项目中使用 stylelint(这里使用 astroturf,但我也面临使用任何 CSS-IN-JS 库(如 styled-components)的相同模式)。
我在同一个文件中定义了不同样式的元素,因此有时最终会出现重复的选择器和/或导入规则。
/* style.js */
import styled from 'astroturf';
export const StyledComponentA = styled('div')`
transform: scale(0);
&.visible {
transform: scale(1);
}
`;
export const StyledComponentB = styled('div')`
opacity: 0;
/* -> stylelint error: Unexpected duplicate selector "&.visible" */
&.visible {
opacity: 1;
}
`;
我这样写的:
import React from 'react';
import { StyledComponentA, StyledComponentB } from './style';
export const Component = ({ isVisible }) => (
<StyledComponentA visible={isVisible}>
<StyledComponentB visible={isVisible}>Whatever</StyledComponentB>
</StyledComponentA>
);
有没有办法在块而不是整个文件上设置这些 stylelint 规则?