Project Icon

eslint-plugin-yml

为 YAML 文件提供全面 linting 功能的 ESLint 插件

eslint-plugin-yml 是一款专为 YAML 文件设计的 ESLint 插件,提供全面的 linting 规则。该插件能够对 YAML 文件进行语法检查,帮助开发者识别潜在问题和保持一致的代码风格。它支持 Vue SFC 自定义块和 ESLint 指令,并可与多种编辑器集成实现实时检查。通过提供抽象语法树和源代码文本,该插件能够与其他 ESLint 插件和规则无缝协作。

简介

eslint-plugin-yml 是一个为 [YAML] 提供代码检查规则的 ESLint 插件。

NPM license NPM version NPM downloads NPM downloads NPM downloads NPM downloads NPM downloads Build Status Coverage Status

:name_badge: 特性

这个 ESLint 插件为 [YAML] 提供代码检查规则。

  • 你可以使用 ESLint 来检查 [YAML]。
  • 你可以发现 [YAML] 文件中的问题。
  • 你可以对 [YAML] 文件应用一致的代码风格。
  • 支持 Vue SFC 自定义块,如 <i18n lang="yaml">。 要求 vue-eslint-parser v7.3.0 及以上版本。
  • 支持 ESLint 指令。例如 # eslint-disable-next-line
  • 你可以使用 ESLint 编辑器集成实时检查你的代码。

你可以在 在线演示 中进行检查。

:question: 与其他 YAML 插件有何不同?

不使用 AST 的插件

例如 eslint-plugin-yaml

这些插件使用处理器独立解析并返回结果,而不向 ESLint 引擎提供 AST 和源代码文本。

插件不提供 AST,所以你无法使用指令注释(例如 # eslint-disable)。 插件不提供源代码文本,所以你无法与使用文本的插件和规则一起使用(例如 eslint-plugin-prettiereol-last)。

eslint-plugin-yml 通过向 ESLint 提供 AST 和源代码文本来工作。

:book: 用法

配置

新配置 (eslint.config.js)

使用 eslint.config.js 文件来配置规则。另见:https://eslint.org/docs/latest/use/configure/configuration-files-new

示例 eslint.config.js

import eslintPluginYml from 'eslint-plugin-yml';
export default [
  // 在这里添加更多通用规则集,例如:
  // js.configs.recommended,
  ...eslintPluginYml.configs['flat/recommended'],
  {
    rules: {
      // 在这里覆盖/添加规则设置,例如:
      // 'yml/rule-name': 'error'
    }
  }
];

此插件提供以下配置:

  • *.configs['flat/base'] ... 启用正确的 YAML 解析的配置。
  • *.configs['flat/recommended'] ... 上述配置,加上防止错误或意外行为的规则。
  • *.configs['flat/standard'] ... 上述配置,加上强制执行常见风格约定的规则。
  • *.configs['flat/prettier'] ... 关闭可能与 Prettier 冲突的规则。

查看 规则列表 以获取此插件提供的 rules

旧配置 (.eslintrc)

使用 .eslintrc.* 文件来配置规则。另见:https://eslint.org/docs/latest/use/configure/

示例 .eslintrc.js

module.exports = {
  extends: [
    // 在这里添加更多通用规则集,例如:
    // 'eslint:recommended',
    "plugin:yml/standard",
  ],
  rules: {
    // 在这里覆盖/添加规则设置,例如:
    // 'yml/rule-name': 'error'
  },
};

此插件提供以下配置:

  • plugin:yml/base ... 启用正确的 YAML 解析的配置。
  • plugin:yml/recommended ... 上述配置,加上防止错误或意外行为的规则。
  • plugin:yml/standard ... 上述配置,加上强制执行常见风格约定的规则。
  • plugin:yml/prettier ... 关闭可能与 Prettier 冲突的规则。

查看 规则列表 以获取此插件提供的 rules

解析器配置

如果你已经指定了解析器,你需要为 .yaml 配置解析器。

例如,如果你正在使用 "@babel/eslint-parser",请按如下方式配置:

module.exports = {
  // ...
  extends: ["plugin:yml/standard"],
  // ...
  parser: "@babel/eslint-parser",
  // 添加一个 `overrides` 部分来为 YAML 添加解析器配置。
  overrides: [
    {
      files: ["*.yaml", "*.yml"],
      parser: "yaml-eslint-parser",
    },
  ],
  // ...
};

解析器选项

通过在 ESLint 配置文件中的 parserOptions 中指定,可以使用以下 yaml-eslint-parser 的解析器选项。

module.exports = {
  // ...
  overrides: [
    {
      files: ["*.yaml", "*.yml"],
      parser: "yaml-eslint-parser",
      // 与 yaml-eslint-parser 一起使用的选项。
      parserOptions: {
        defaultYAMLVersion: "1.2",
      },
    },
  ],
  // ...
};

另见 https://github.com/ota-meshi/yaml-eslint-parser#readme

从命令行运行 ESLint

如果你想从命令行运行 eslint,请确保使用 --ext 选项 包含 .yaml 扩展名或使用 glob 模式,因为 ESLint 默认只针对 .js 文件。

示例:

eslint --ext .js,.yaml,.yml src
eslint "src/**/*.{js,yaml,yml}"

:computer: 编辑器集成

Visual Studio Code

使用 Microsoft 官方提供的 dbaeumer.vscode-eslint 扩展。

你必须配置扩展的 eslint.validate 选项来检查 .yaml 文件,因为该扩展默认只针对 *.js*.jsx 文件。

示例 .vscode/settings.json

{
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "yaml",
    "github-actions-workflow" // 用于 GitHub Actions 工作流文件
  ]
}

JetBrains WebStorm IDEs

在任何 JetBrains IDE 中,你都可以 配置代码检查范围。 按照他们的帮助文档中的步骤,你可以将 YAML 文件添加到范围内,如下所示:

  1. 打开 设置/首选项 对话框,转到 语言和框架 | JavaScript | 代码质量工具 | ESLint,选择 自动 ESLint 配置手动 ESLint 配置
  2. 运行文件 字段中,更新定义要检查的文件集的模式,以包含 YAML 文件:
{**/*,*}.{js,ts,jsx,tsx,html,vue,yaml,yml}
^^^^ ^^^

:white_check_mark: 规则

命令行 上的 --fix 选项会自动修复下面带有扳手 :wrench: 的规则报告的问题。 带有以下星号 :star: 的规则包含在配置中。

YAML 规则

规则 ID描述可修复推荐标准
yml/block-mapping-colon-indicator-newline强制 : 指示符后的一致换行:wrench:
yml/block-mapping-question-indicator-newline强制 ? 指示符后的一致换行:wrench::star:
yml/block-mapping要求或禁止块样式映射:wrench::star:
yml/block-sequence-hyphen-indicator-newline强制 - 指示符后的一致换行:wrench::star:
yml/block-sequence要求或禁止块样式序列:wrench::star:
yml/file-extension强制 YAML 文件扩展名
yml/indent强制一致的缩进:wrench::star:
yml/key-name-casing强制键名的命名约定
yml/no-empty-document禁止空文档:star::star:
yml/no-empty-key禁止空映射键:star::star:
yml/no-empty-mapping-value禁止空映射值:star::star:
yml/no-empty-sequence-entry禁止空序列项:star::star:
yml/no-tab-indent禁止使用制表
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号