ESLint 和 Prettier 冲突,无法为代码块禁用 Prettier

2024-01-01

我们的项目使用 Prettier 和 ESLint。通常它们可以很好地协同工作,但我们遇到了两者发生冲突的问题。我不知道为什么,我不知道如何修复它,并且我无法禁用该行的 prettier,因为我收到错误。

我们设置的相关部分

// .prettierrc
  "printWidth": 80,
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": true,
  "trailingComma": "es5",
  "arrowParens": "always"

// eslintrc.js
  extends: ['airbnb', 'eslint-config-prettier', 'prettier/react'],
  plugins: [
    'eslint-plugin-prettier',
    'redux-saga',
    'react',
    'react-hooks',
    'jsx-a11y',
  ],
  rules: {
    'prettier/prettier': ['error'],
    indent: [
      2,
      2,
      {
        SwitchCase: 1,
      },
    ],
    'max-len': 0,

这是代码,添加了注释来指出问题:

    const options =
      children === undefined
        ? items.map((item) => (
          // Prettier complains about the next four lines
          <option key={uuidv1()} value={item}>
            {item}
          </option>
        ))
        : children;

Prettier 希望这些线条另外有两个空格。

ESLint 喜欢它们所在的位置。我倾向于同意 ESLint 的观点。如果我自动格式化为 Prettier,ESLint 会抱怨并希望将其改回来。我正在使用 VSCode。我们的代码库中的其他任何地方都没有发生过这样的冲突。

我尝试仅禁用这些行的 prettier,但是 eslint 的自动禁用选项添加了// eslint-disable-next-line prettier/prettier,这会导致应用程序出错Definition for rule 'prettier/prettier' was not found。尝试添加// prettier-ignore由于 JSX,这是不可能的。

我不明白为什么 Prettier 想要 ESLint 所说的东西。我们能够修复它的唯一方法是删除'prettier/prettier': ['error'],完全来自我们的 ESLint 配置,这似乎不合适。

建议?

2019 年 10 月 10 日更新- 感谢用户 chazsolo 的建议,我修改了函数的格式化方式以获得此结果,这不存在任何 linting 问题:

const dropDownOptions =
  children ||
  items.map((item) => (
    <option key={uuidv1()} value={item.value || item}>
      {item.text || item}
    </option>
  ));

对于这个问题,这是一个可行的解决方法,但我没有回答这个问题,因为我仍然觉得我的代码是完全有效的,不应该出现这种冲突。

该解决方法也仅在我检查类似值时才有效children因为是虚假的。我们还有另一个条件,它是匹配的,并且我不能以同样的方式将其短路。所有这些问题都涉及到使用.map().

// Can't short-circuit here
var === SOME_ENUM
  ? filteredItems.map((item) => (
      // some JSX
    ))
  : filteredItems.map((item) => (
      // some other JSX
    ));

我可以在地图函数内移动条件,但这会导致检查条件每个循环.

这个问题已经出现了lot,并且我可能会以这种速度在 Prettier 中为其创建一个问题,因为排除故障相当烦人。


我的基本设置对于 .eslintrc.json 中的 vue/ts 运行良好。 你应该在插件中添加 prettier

{
  "parser": "vue-eslint-parser",
  "parserOptions": { 
    "parser": "@typescript-eslint/parser" 
  },
  "plugins": ["@typescript-eslint", "prettier"],
  "rules": {
    "semi": ["error", "never"],
    "quotes": ["error", "single"],
    "prettier/prettier": "error"
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESLint 和 Prettier 冲突,无法为代码块禁用 Prettier 的相关文章

  • chrome 调试器承诺在暂停时不会解析?

    也许我没有正确调试承诺 但基本上 如果您在断点处停止并运行异步代码 它实际上不会完成 直到您恢复执行为止 这是一个问题 调试器允许您快速试验多个 api 方法 但如果您恢复它 您就不能 debugger now type the follo
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • 仅当表单已提交时才触发 jQuery 表单验证?

    不引人注目的验证基于这样的想法 don t进行表单验证 直到用户提交表单 一旦发生这种情况 如果表单上的某些内容无效 那么一旦用户更改了每个字段 就会立即验证它 我想做的是 不显眼地 触发表单元素的验证 也就是说 only如果用户已尝试提交
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • 使用 moment.js 检查输入日期是否为星期一

    好吧 我想检查日期是否是星期一 例如 var myDate new Date moment myDate DD MM YYYY dayIs monday 在我的国家 一周的第一天是星期一 所以 我真的想检查输入日期是否是一周的开始 我尝试使
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 如何在jquery中获取保存时间和当前时间的差异?

    我想在 javascript 或 jquery 中获取保存时间和当前时间之间的时差 我节省的时间看起来像Sun Oct 24 15 55 56 GMT 05 30 2010 java中的日期格式代码如下 String newDate 201
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable

随机推荐

  • 我可以在 Linux 中使用原始套接字创建侦听 TCP 套接字吗?

    我想创建一个侦听 TCP 套接字 在其中我可以控制它在收到来自客户端的初始 SYN 数据包后何时使用第一个 SYN ACK 响应客户端 我想这样做是为了引入一些延迟或忽略一些初始 SYN 数据包 我现在可以使用 iptables 来完成此操
  • PostgreSQL - 整数[]最佳实践

    最近在开发一个网络应用程序时 我决定在数据模型中使用整数 有 2 个表 一个包含文章数据 第二个包含标签 标签 ID 和描述 决定在article tags integer 列中标记一篇文章的标签 ID As 米伦 拉德夫 https st
  • 如何使用 Cypress 和 Auth0 测试单页应用程序

    我有一个单页应用程序隐藏在 Auth0 锁后面 使用 auth0 auth0 spa js https github com auth0 auth0 spa js 我想用Cypress来测试一下 所以我决定遵循官方的Auth0 博客文章 h
  • 当我将 python 线程设置为守护进程时有什么不同

    当我将 python 线程设置为守护进程时 使用thread setDaemon True 守护线程不会阻止应用程序退出 当所有非守护线程 包括主线程 完成时 程序结束 因此 一般来说 如果您在后台执行某些操作 您可能希望将线程设置为守护进
  • 使用 AJAX 在 PHP 中发送电子邮件

    我正在尝试使用 AJAX 在简单的联系表单中以 PHP 发送电子邮件 我有以下简单表单的代码 提交按钮的 PHP 代码和 AJAX 脚本 当我尝试发送电子邮件时 它没有发送任何电子邮件 并且总是触发 AJAX 错误消息 我不太擅长 AJAX
  • 错误:对象当前正在其他地方使用。

    我开发了一个应用程序 可以从数码单反相机连续读取图像流 while liveViewExit Create a Memory Stream stream new IntPtr Get the bitmap image from the DS
  • 从 PHP 数组中删除零值

    我有一个像这样的普通数组 Array 0 gt 0 1 gt 150 2 gt 0 3 gt 100 4 gt 0 5 gt 100 6 gt 0 7 gt 100 8 gt 50 9 gt 100 10 gt 0 11 gt 100 12
  • C#中使用AppDomain动态加载和卸载dll

    在我的一个与系统诊断相关的应用程序中 相关的DLL需要在C 中动态加载和卸载 经过一番搜索 我发现单独的 DLL 无法动态加载完整的 AppDomain 所以我必须创建一个 AppDomain 并使用该 DLL 进行动态加载和卸载 但我找不
  • Font Awesome 5 图标无法与 React 一起使用(“找不到图标”错误)

    我正在尝试在我的 React 项目中使用 Font Awesome 5 Pro 我有许可证 并且我已按照API https www npmjs com package fortawesome react fontawesome尽我所能 但我
  • jQuery 获取高度和宽度

    我做了一个if函数检查宽度是否 document ready function var pic pic need to remove these in of case img element has set width and height
  • Django + PostgreSQL 连接 - 无法使用服务器端游标

    我在 PostgreSQL 中有一个存储过程 它返回一个引用游标 它的名称可以作为参数传递 Example stored procedure CREATE OR REPLACE FUNCTION example stored procedu
  • UWP 中的扩展执行

    我想为我的 UWP 应用程序使用后台任务 下面的代码是我在Windows Mobile中的后退按钮单击事件 private async void MainPage BackRequested object sender BackReques
  • 我如何使用 SVN 作为 Maven 存储库

    我正在开发具有多个依赖项的项目 大多数依赖项都可以在我们的集中 Maven 存储库中找到 我的项目包含一些仅特定于我的应用程序且在我们的 Maven 存储库中不可用的 JAR 由于某些政策 限制 我无法将该 jar 部署到我们的 Maven
  • 匹配 XPath 中的不间断空格值

    假设我有这样的 XML 结构 table tr td nbsp td tr table 我将如何指定与谓词中的节点值的比较 tr td 应该指定什么而不是 解决办法是 tr td u0160 实际的 unicode 表示方式取决于您使用的工
  • 在angularjs中为多个部分视图创建单个html视图

    我希望创建一个包含多个标签的 html 文件 这些应该作为单独的单独视图 通常保存在部分文件夹中 然后我希望在路由控制器中指定它们 现在我正在做如下 应用程序 js angular module productapp config rout
  • 如何完成这个 Google Calendar Api v3 - FreeBusy PHP - 示例?

    我想使用 google api v3 freebusy php 来查找我的三个日历的免费 freebusy 信息 但我找不到代码的正确结尾 我想访问 freebusy response 的 日历 忙 值 由于 api 参考中没有示例代码 而
  • 使用 roxygen2 时如何指定加载 S4 方法的顺序

    我已经多次遇到以下问题 假设你有两节课 classA and classB在以下文件中描述classA R the class classA This is a class A blabla section Slots describe i
  • 如何根据指针变量计算数组的大小?

    我有数组指针 内存中的数组 我可以根据数组的指针计算数组的大小吗 我实际上不知道数组在内存中的位置 我只得到指针地址 假设9001 使用该地址我必须计算数组大小 Thanks 不 您无法计算数组的大小 C 中的对象不携带类型信息 因此您必须
  • window.scrollTo 在手机中不起作用

    在我的网页的移动视图上 我可以垂直和水平方向滚动 但这始终从左上角开始 现在我想使用 window scrollTo 或类似的东西将视口设置为我的自定义位置 window scroll 似乎只适用于桌面浏览器 知道我该如何解决这个问题吗 我
  • ESLint 和 Prettier 冲突,无法为代码块禁用 Prettier

    我们的项目使用 Prettier 和 ESLint 通常它们可以很好地协同工作 但我们遇到了两者发生冲突的问题 我不知道为什么 我不知道如何修复它 并且我无法禁用该行的 prettier 因为我收到错误 我们设置的相关部分 prettier