grunt-yamllint
v0.3.0
Published
Linting YAML files for correctness using JS-YAML.
Downloads
7,399
Readme
grunt-yamllint v0.1.0
Validate YAML files with JS-YAML.
Getting Started
This plugin requires Grunt ~0.4.0
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-yamllint --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-yamllint');
yaml-lint task
Run this task with the grunt yamllint
command.
Task targets, files and options may be specified according to the grunt Configuring tasks guide.
Options
Any specified option will be passed through directly to JS-YAML, thus you can specify any option that JS-YAML supports. See the JS-YAML documentation for a list of supported options.
A few additional options are supported:
force
Type: Boolean
Default: false
Set force
to true
to report JS-YAML errors but not fail the task.
Usage examples
Wildcards
In this example, running grunt yamllint:all
(or grunt yamllint
because yamllint
is a multi task) will lint the project's YAML files in the lib
and test
directories and their subdirectores, using the default JS-YAML options.
// Project configuration.
grunt.initConfig({
yamllint: {
all: ['lib/**/*.yaml', 'test/**/*.yaml']
}
});
Linting before and after concatenating
In this example, running grunt yaml-lint
will lint both the "beforeconcat" set and "afterconcat" sets of files. This is not ideal, because dist/output.yaml
may get linted before it gets created via the grunt-contrib-concat plugin concat
task.
In this case, you should lint the "beforeconcat" files first, then concat, then lint the "afterconcat" files, by running grunt yamllint:beforeconcat concat yamllint:afterconcat
.
// Project configuration.
grunt.initConfig({
concat: {
dist: {
src: ['src/foo.yaml', 'src/bar.yaml'],
dest: 'dist/output.yaml'
}
},
yamllint: {
beforeconcat: ['src/foo.yaml', 'src/bar.yaml'],
afterconcat: ['dist/output.yaml']
}
});
Specifying JS-YAML options and globals
In this example, custom JS-YAML options are specified. Note that when grunt yamllint:uses_defaults
is run, those files are linted using the default options, but when grunt yamllint:with_overrides
is run, those files are linted using merged task/target options.
// Project configuration.
grunt.initConfig({
yamllint: {
options: {
schema: 'DEFAULT_SAFE_SCHEMA'
},
uses_defaults: ['dir1/**/*.yaml', 'dir2/**/*.yaml'],
with_overrides: {
options: {
schema: 'DEFAULT_FULL_SCHEMA'
},
files: {
src: ['dir3/**/*.yaml', 'dir4/**/*.yaml']
},
}
},
});
Snippet of options from JS-YAML
filename
(default: null) - string to be used as a file path in error/warning messages.onWarning
(default: null) - function to call on warning messages. Loader will throw on warnings if this function is not provided.schema
(default:DEFAULT_SAFE_SCHEMA
) - specifies a schema to use.FAILSAFE_SCHEMA
- only strings, arrays and plain objects: http://www.yaml.org/spec/1.2/spec.html#id2802346JSON_SCHEMA
- all JSON-supported types: http://www.yaml.org/spec/1.2/spec.html#id2803231CORE_SCHEMA
- same asJSON_SCHEMA
: http://www.yaml.org/spec/1.2/spec.html#id2804923DEFAULT_SAFE_SCHEMA
- all supported YAML types, without unsafe ones (!!js/undefined
,!!js/regexp
and!!js/function
): http://yaml.org/type/DEFAULT_FULL_SCHEMA
- all supported YAML types.
Release History
- 2014-10-20 v0.1.0 Work in progress, not yet officially released.