Ошибка 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 обрабатывает следующие источники:

  • целые файлы
  • код передан code опция узла API
  • stdin передано в CLI

При написании CSS-in-JS может быть целесообразно отключить правила, относящиеся к источникам. Вы можете отключить их:

Другие вопросы по тегам