Eslint 和更漂亮的操作符-换行规则冲突

Ale*_*nce 9 conflict rules reactjs eslint prettier

我有一些 eslint 和漂亮的配置。当我按 ctrl + s 来保存我的代码时,我的 eslint 正在尝试将代码格式化如下:

        (errors.password
            && (errors.password.type === 'minLength'
            || errors.password.type === 'maxLength') && (
              <Styled.Error className="invalidForm">
                Password must be more than 6 and less then 32 digits
              </Styled.Error>
          ))
            || (errors.password && (
              <Styled.Error className="invalidForm">
                Password is required
              </Styled.Error>
            ))
Run Code Online (Sandbox Code Playgroud)

在那之后,漂亮的也立即将代码格式化为:

        (errors.password &&
            (errors.password.type === 'minLength' ||
              errors.password.type === 'maxLength') && (
              <Styled.Error className="invalidForm">
                Password must be more than 6 and less then 32 digits
              </Styled.Error>
            )) ||
            (errors.password && (
              <Styled.Error className="invalidForm">
                Password is required
              </Styled.Error>
            ))
Run Code Online (Sandbox Code Playgroud)

我不想改变 eslint 规则,也不想禁用更漂亮的格式。如何更改放置逻辑运算符的更漂亮规则?

isA*_*Aif 4

根据更漂亮的文档

\n
\n

由于历史原因,Prettier 有一些选择。但我们不\xe2\x80\x99 想要更多。\n Prettier 不是一个厨房水槽代码格式化程序,它会尝试以您希望的任何方式打印您的代码。这是固执己见

\n
\n
\n

引用《为什么更漂亮?》页:\n到目前为止,采用 Prettier 的最大原因是停止所有关于样式的持续争论。

\n
\n

Prettier 附带了一些格式选项,其中一些是:

\n
    \n
  • 标签宽度
  • \n
  • 选项卡
  • \n
  • 分号
  • \n
  • 引号
  • \n
  • 报价道具
  • \n
  • JSX 行情
  • \n
  • 尾随逗号
  • \n
\n

但这些选项不包括您正在寻找的内容。

\n

  • 我也遇到过同样的问题,prettier 和 eslint 在操作符换行上发生冲突。在我的 .eslintrc 文件的扩展数组中添加了 prettier,现在 eslint 可以识别 prettier 格式并且不会抛出错误。 (9认同)
  • 此配置将禁用 eslint 规则,但我需要保留 eslint 规则并禁用更漂亮的规则 (3认同)
  • 我已经更新了答案以表明它无法完成。 (3认同)
  • 有一个未解决的问题:https://github.com/prettier/prettier/issues/3806 (3认同)