【问题标题】:Issues with ESLint "max-len" ignore patternESLint“max-len”忽略模式的问题
【发布时间】:2016-06-04 16:28:04
【问题描述】:

我试图忽略带有 ESLint “max-len” 规则和一些 ES6 代码的导入语句。我的规则集写在index.js 的配置中,规则本身的配置如下所示:

    'max-len': [
        2,
        80,
        4,
        {
            ignoreUrls: true,
            ignorePattern: /^import\s.+\sfrom\s.+;$/
        }
    ],

考虑到我提供的正则表达式,超过 80 个字符的行仍然会触发错误。我对规则本身有什么不理解的地方吗?

我也尝试过更简单的正则表达式并传递正则表达式字符串,例如:

'^import.*'

在这里找到:http://eslint.org/docs/rules/max-len

【问题讨论】:

  • 如果删除$ 会怎样?该行是否包含尾随 \n\r 并不明显。
  • 定义“不喜欢”?您是否尝试过将其作为带有双重转义的字符串传递,就像文档中显示的示例一样?例如ignorePattern: "^import\\s.+\\sfrom\\s.+;$"
  • 看来即使我把它说得很笼统,比如/^import*/,它仍然失败
  • @loganfsmyth,是的,我也尝试过传递字符串。文档说如果你使用 JSON 或 YAML,你需要传递一个字符串。尽管如此,它仍然因“^import*”而失败。
  • @loganfsmyth 在源代码中被用作ignorePattern = new RegExp(ignorePattern);,所以它可以是任何一个。

标签: javascript regex ecmascript-6 eslint


【解决方案1】:

我也遇到了麻烦,但@loganfsmyth 的建议对我有用。我使用的是 v3.14.0,我所有的规则都在一个 .eslintrc 文件中:

{
  ...
  "rules": {
    "max-len": [1, 80, 2, {
      "ignorePattern": "^import\\s.+\\sfrom\\s.+;$",
      "ignoreUrls": true
    }],
    ...
  },
}

【讨论】:

    【解决方案2】:

    类似于 loganfsmyth 的评论和 ericgio 的回答,但没有双重转义,这对我来说适用于 yaml:

    rules:
      ...
      max-len:
      - error
      - code: 80
        tabWidth: 2
        ignorePattern: ^import\s.+\sfrom\s.+;$
      ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 2015-09-16
      相关资源
      最近更新 更多