Skip to content

rasshofer/yaml-lint

Repository files navigation

YAML Lint

A simple (CLI) tool to lint YAML files

Coverage Status

Usage

npm install --save-dev yaml-lint
const yamlLint = require('yaml-lint');

yamlLint
  .lint('test: 123')
  .then(() => {
    console.log('Valid YAML file.');
  })
  .catch((error) => {
    console.error('Invalid YAML file.', error);
  });

CLI

npm install -g yaml-lint
yamllint test.yaml

Options

YAML Lint is configured using the following options via a configuration file, environment variables, and/or command-line arguments.

First of all, YAML Lint looks for a JSON file called .yaml-lint.json within the current working directory.

{
  "schema": "CORE_SCHEMA",
  "ignore": "dir/*.yaml"
}

Afterwards, YAML Lint will take environment variables into account.

YAMLLINT_SCHEMA=CORE_SCHEMA YAMLLINT_IGNORE=dir/*.yaml yamllint

Concluding, YAML Lint will take command-line arguments into account.

yamllint --schema=CORE_SCHEMA --ignore=dir/*.yaml

(All options are merged into a single configuration using the hierarchy described above.)

schema (string)

Specifies a schema to use

ignore (string or array of strings)

Specifies one or multiple glob patterns to ignore

yamllint **/*.(yaml|yml) --ignore=foobar.yml --ignore=dir/*.yaml

Changelog

  • 1.7.0
    • Fix glob pattern to enforce forward slashes to prevent Windows issues
    • Run tests on different operating systems in CI
  • 1.6.0
    • Implement support for multi-document sources
  • 1.5.0
    • Add tests for CLI
  • 1.4.0
    • Display all failing files instead of only the first best one
  • 1.3.0
    • Migrate to TypeScript and update dependencies
  • 1.2.4
    • Fix paths for ignored patterns
  • 1.2.3
    • Remove nocase rule to prevent problems on Windows
  • 1.2.2
    • Fix CLI support relative paths
  • 1.2.1
    • Fix README
  • 1.2.0
    • Add documentation regarding how to specify options
    • Update dependencies
    • Support ignoring specific files
  • 1.1.0
    • Update dependencies
    • Migrate syntax to ES2015+
  • 1.0.0
    • Update dependencies
    • Enable tests for Node.js 8
    • Remove support for Node.js 0.x
  • 0.0.4
    • Print file names when logging YAML errors while using the CLI
  • 0.0.3
    • Implement check for empty file selections while using the CLI
  • 0.0.2
    • Prettier error messages within CLI
    • Add shebang for CLI
  • 0.0.1
    • Initial version

License

Copyright (c) 2022 Thomas Rasshofer
Licensed under the MIT license.

See LICENSE for more info.

Contributors