Ошибка no-duplicate-selectors для разных селекторов внутри одного файла
Я использую stylelint в проекте CSS-IN-JS (здесь используется astroturf, но я сталкиваюсь с тем же шаблоном, использующим любую библиотеку CSS-IN-JS, например, styleled-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 для блоков вместо целого файла?
0 ответов
Есть ли способ установить эти правила stylelint для блоков вместо целого файла?
Нет.
Правила как no-duplicate-selectors
относятся к источнику, а stylelint обрабатывает следующие источники:
При написании CSS-in-JS может быть целесообразно отключить правила, относящиеся к источникам. Вы можете отключить их:
- полностью в вашем объекте конфигурации, например
"no-duplicate-selectors": null
- на индивидуальной основе с использованием командных комментариев