如何禁用 vue.js <template> 中段落的 eslint 规则最大行长度?

How to disable eslint rule max line length for paragraph in <template> of vue.js?

我正在使用 airbnb eslint,目前出现错误:

error: Line 6 exceeds the maximum line length of 100 (max-len) at path/to/file.vue:6:1:

<template lang="pug">
  div
    .container
      .row
        .col-xl-10.mx-auto
          p Please let us know how you got here, and use the header buttons to navigate back to safe harbor.
</template>

有没有办法为上面的段落文本禁用 lint?
另外,如何将行长度从 100 增加到 120?

更新

eslint-plugin-vue 在过去 4 年里有一些更新。模板中的注释现在可用于覆盖 eslint 设置。

仅下一行

<!-- eslint-disable-next-line max-len -->
<my-reasonably-long-component>...</my-reasonably-long-component>

用于多行目的

<!-- eslint-disable max-len -->
<my-reasonably-long-component>
  ...
</my-reasonably-long-component>
<!-- eslint-enable max-len -->

此外,从 eslint-plugin-vue v6.1.0 开始,添加了 vue/max-len 规则,哪些广告可以更好地控制长度规则

{
    "vue/max-len": ["error", {
        "code": 80,
        "template": 80,
        "tabWidth": 2,
        "comments": 80,
        "ignorePattern": "",
        "ignoreComments": false,
        "ignoreTrailingComments": false,
        "ignoreUrls": false,
        "ignoreStrings": false,
        "ignoreTemplateLiterals": false,
        "ignoreRegExpLiterals": false,
        "ignoreHTMLAttributeValues": false,
        "ignoreHTMLTextContents": false,
    }]
}

如果您有多个异常值,调整模板的全局变量可能会更好。


原答案

AFAIK,无法将 eslint 规则应用于模板,尤其是模板中的一行。不过我希望被证明是错误的。

无论如何,因为我有一个包含大量文本的文件,为了绕过它,我在我的 .eslintrc.js 文件中添加了这条规则 'max-len': ["error", { "code": 120 }],

这是结构(删除了其他设置)

module.exports {
  rules: {
    'max-len': ["error", { "code": 120 }]
  }
}

对于 eslint-plugin-vue >= 4.1.0 你可以使用指令注释来禁用 eslint。

https://github.com/vuejs/eslint-plugin-vue/commit/ad84e0ba6d81f24583e65fc70b1d9803d73d3ed9

<template>
  <!-- eslint-disable-next-line vue/max-attributes-per-line -->
  <div a="1" b="2" c="3" d="4">
  </div>
</template>

这将禁用整个模板标记的规则。 Official ES Lint docs on disabling rules

<template>
  <!-- eslint-disable max-len -->
  ...

编辑:如果您想禁用所有 .vue 文件的行长度规则,则将其添加到 .eslintrc.js(这也将禁用 <script><style> 的规则标签):

module.exports = {
  ...
  overrides: [
    {
      files: ["*.vue"],
      rules: {
        ...
        'max-len': 'off' // disables line length check
      }
    }
  ]
};

您可以将其添加到您的 ESLint 规则中:

rules: {
  "vue/max-attributes-per-line": "off"
}

这对我有用(即使我宁愿为我的项目设置它)。
如果需要,您可以找到更多信息 here

您可以禁用 max-len 并使用 vue/max-len"template": 9000 之类的东西。一个例子:

"overrides": [
    {
      "files": [
        "*.vue"
      ],
      "rules": {
        "max-len": "off",
        "vue/max-len": [
          "error",
          {
            "code": 120,
            "template": 9000,
            "ignoreTemplateLiterals": true,
            "ignoreUrls": true,
            "ignoreStrings": true
          }
        ]
      }
    }
  ]

这样您就可以仅针对组件的 <template></template> 部分禁用规则。

正确的 eslint 配置是这样的:

rules: {
  'prettier/prettier': ['error', { printWidth: 120 }],
},

我正在使用 Vue3,结构已更改,.eslintrc.js 正在合并到 package.json 中,因此前面提到的方法对我不起作用。

第一。

这就是我的工作方式 注释了 .editorconfig

中的行
[*.{js,jsx,ts,tsx,vue}]
indent_style = space
indent_size = 2
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
# max_line_length = 100

秒。

package.json

中添加 eslintConfig 对象中的行
"rules": {
  "max-len": ["error", 120]
},