【问题标题】:Have Prettier remove <space> after async keyword让 Prettier 在 async 关键字之后删除 <space>
【发布时间】:2020-08-20 06:17:39
【问题描述】:

我正在做一个 VueJs 项目,我在 VSCode 中使用 eslint 和 Prettier。我遇到的问题是 eslint 在 async 关键字 nut Prettier 之后不需要空格。因此,当vue-cli-service serve 构建源代码时,它会抱怨 prettier 在异步之后想要一个空间,如果我手动添加它,那么 eslint 会抛出它在异步之后不需要空间的错误。

更漂亮的格式:

export const myFunction = async (...args) => {};

Eslint 期望:

export const myFunction = async(...args) => {};

我想告诉 Prettier 在 async 关键字后不要有空格或告诉 eslint 忽略 async 关键字后的空格,有什么建议吗?

【问题讨论】:

  • 如果这很重要,那么您强制执行的样式无论如何都不是传统的。你写的不是asyncfunction() {}而是async function() {},为什么要区别对待箭头。它的问题是async(...args) 可以读作“我们调用一个名为 async 的函数并带有扩展参数”(这并不罕见,因为 async 不是保留关键字),然后有 =&gt; 表明它被误读了。

标签: vue.js vuejs2 eslint prettier


【解决方案1】:

实际上,我刚刚发现了一个论坛问题,其中的答案解决了我的问题。在.eslintrc.js文件中可以添加如下规则:

'space-before-function-paren': [
      'error',
      {
        anonymous: 'never',
        named: 'never',
        asyncArrow: 'always'
      }
    ]

asyncArrow: 'always' 规则修复了编译器错误。

【讨论】:

    【解决方案2】:

    为了 Prettier 不与 ESLint 冲突,所有 ESLint 的格式相关规则都应该被禁用。见https://prettier.io/docs/en/integrating-with-linters.html

    【讨论】:

      猜你喜欢
      • 2017-03-10
      • 2021-05-06
      • 2015-08-16
      • 1970-01-01
      • 2013-11-13
      • 2022-01-25
      • 2021-10-05
      • 2020-04-05
      • 2020-08-08
      相关资源
      最近更新 更多