【问题标题】:Eslint with Prettier. Unable to prevent eslint-config-prettier line-length errorsEslint 和 Prettier。无法防止 eslint-config-prettier 行长错误
【发布时间】:2018-09-18 22:46:47
【问题描述】:

查看底部的修改

我有一个 JavaScript 文件,我正在使用 Eslint 进行 linting。我正在使用 Prettier 来格式化代码。

我个人对此文件的选择是将行长增加到 Prettier 默认的 80 个字符之外,增加到 2000 个字符。

所以我有一个 prettierrc.config.js:

module.exports = {
  printWidth: 2000
};

当我格式化代码并且我有一个 .eslintrc.js 时,这会起作用

module.exports = {
  "parserOptions": {
    "ecmaVersion": 6
  },
  "env": {
    "es6": true,
    "browser": true
  },
  "extends": [
    "eslint-config-airbnb-base",
    "eslint-config-prettier"
  ],
  "plugins": [
    "eslint-plugin-import",
    "eslint-plugin-prettier"
  ],
  "rules": {
    "prettier/prettier": ["error", {}],
    "max-len": ["error", {"code": 2000, "ignoreUrls": true}],
    "linebreak-style": 0,
    "no-use-before-define": ["error", { "functions": false, "classes": false }],
    "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
    "no-underscore-dangle": 0,
    "import/no-amd": 0,
    "import/no-dynamic-require": 0,
  },
  "globals": {
    "define": true
  }
};

每次我对文件进行 lint,它都会抱怨某些行的长度。

编辑为清楚起见:

我正在使用 eslint v4.19.1prettier 1.10.2。正在正确读取和使用配置文件。

编辑获取更多信息 2018/05/30

我发现了 lint 错误的区别。 Max-len 工作正常,并且我在规则中作为替代提供的值得到尊重。

更漂亮的配置有一个问题是我的一些条件表达式的长度。我可以看到它希望将它们放在带有额外空白的新行上。现在这是我要覆盖的配置。这似乎是与 max-len 不同的规则。下面的示例是一个长度为 60 个字符的条件表达式,它触发了 lint 错误。整行只有 84 个字符长(* 表示空格)。

**********} else if (firstSessionDate > this.sessionsData[i].SessionStartDateTime) {

【问题讨论】:

    标签: javascript eslint prettier


    【解决方案1】:

    基于ESLint's docs,您在rules 中包含的任何内容都优先于从extends 继承的规则,这意味着您可以部分或完全更改规则的行为。

    这意味着您指定的 max-len 规则会优先于来自 eslint-config-prettiermax-len 规则。你必须从你的配置文件中删除这条规则,ESLint 将停止抱怨。

    【讨论】:

    • 嗨@Lucas,谢谢你回来找我。我在这方面花了更多时间。包含 max-len 是经过深思熟虑的。这迫使 eslint 尊重我增加的行长。哪个有效,因为我已经测试并修改了这些值。如果我注释掉 max-len,我会收到有关行长的错误。 prettier/eslint 实际上抱怨的是我的一些 if/else 语句中条件表达式的长度。它想把它们放在一条新线上。我花了一段时间才看到区别。我仍在寻找一种方法来覆盖它。
    猜你喜欢
    • 2017-11-25
    • 2020-12-25
    • 2021-05-06
    • 2022-01-09
    • 2022-11-08
    • 2021-09-29
    • 2019-12-12
    • 2020-01-30
    • 2018-08-22
    相关资源
    最近更新 更多