# User Guide
# 💿 Installation
npm install --save-dev eslint eslint-plugin-yml
Requirements
- ESLint v6.0.0 and above
- Node.js v14.17.x, v16.x and above
# 📖 Usage
# Configuration
Use .eslintrc.*
file to configure rules. See also: https://eslint.org/docs/user-guide/configuring (opens new window).
Example .eslintrc.js:
module.exports = {
extends: [
// add more generic rulesets here, such as:
// 'eslint:recommended',
"plugin:yml/standard",
],
rules: {
// override/add rules settings here, such as:
// 'yml/rule-name': 'error'
},
};
This plugin provides configs:
plugin:yml/base
... Configuration to enable correct YAML parsing.plugin:yml/recommended
... Above, plus rules to prevent errors or unintended behavior.plugin:yml/standard
... Above, plus rules to enforce the common stylistic conventions.plugin:yml/prettier
... Turn off rules that may conflict with Prettier (opens new window).
See the rule list to get the rules
that this plugin provides.
# Parser Configuration
If you have specified a parser, you need to configure a parser for .yaml
.
For example, if you are using the "@babel/eslint-parser"
, configure it as follows:
module.exports = {
// ...
extends: ["plugin:yml/standard"],
// ...
parser: "@babel/eslint-parser",
// Add an `overrides` section to add a parser configuration for YAML.
overrides: [
{
files: ["*.yaml", "*.yml"],
parser: "yaml-eslint-parser",
},
],
// ...
};
# Parser Options
The following parser options for yaml-eslint-parser
are available by specifying them in parserOptions (opens new window) in the ESLint configuration file.
module.exports = {
// ...
overrides: [
{
files: ["*.yaml", "*.yml"],
parser: "yaml-eslint-parser",
// Options used with yaml-eslint-parser.
parserOptions: {
defaultYAMLVersion: "1.2",
},
},
],
// ...
};
See also https://github.com/ota-meshi/yaml-eslint-parser#readme (opens new window).
# Running ESLint from the command line
If you want to run eslint
from the command line, make sure you include the .yaml
extension using the --ext
option (opens new window) or a glob pattern, because ESLint targets only .js
files by default.
Examples:
eslint --ext .js,.yaml,.yml src
eslint "src/**/*.{js,yaml,yml}"
# 💻 Editor Integrations
# Visual Studio Code
Use the dbaeumer.vscode-eslint (opens new window) extension that Microsoft provides officially.
You have to configure the eslint.validate
option of the extension to check .yaml
files, because the extension targets only *.js
or *.jsx
files by default.
Example .vscode/settings.json:
{
"eslint.validate": ["javascript", "javascriptreact", "yaml"]
}
# JetBrains WebStorm IDEs
In any of the JetBrains IDEs you can configure the linting scope (opens new window). Following the steps in their help document, you can add YAML files to the scope like so:
- Open the Settings/Preferences dialog, go to Languages and Frameworks | JavaScript | Code Quality Tools | ESLint, and select Automatic ESLint configuration or Manual ESLint configuration.
- In the Run for files field, update the pattern that defines the set of files to be linted to include YAML files as well:
{**/*,*}.{js,ts,jsx,tsx,html,vue,yaml,yml}
^^^^ ^^^
# ❓ FAQ
- TODO