【问题标题】:no-duplicate-selectors error for different selectors inside the same file同一文件中不同选择器的无重复选择器错误
【发布时间】:2018-11-27 12:29:01
【问题描述】:

我在 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 规则?

【问题讨论】:

    标签: stylelint astroturf css-in-js


    【解决方案1】:

    有没有办法在块而不是整个文件上设置这些 stylelint 规则?

    没有。

    no-duplicate-selectors 之类的规则被限定为来源,stylelint 将以下内容视为来源:

    • 整个文件
    • 代码传递给node APIcode 选项
    • stdin 传递给 CLI

    在编写 CSS-in-JS 时,建议关闭范围为源的规则。您可以关闭它们:

    【讨论】:

    • 真的很伤心,我喜欢规则本身
    猜你喜欢
    • 2013-05-27
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2020-06-25
    • 1970-01-01
    相关资源
    最近更新 更多