UNPKG

grunt-yamllint

Version:

Linting YAML files for correctness using JS-YAML.

129 lines (94 loc) 4.52 kB
# 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](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command: ```shell npm install grunt-yamllint --save-dev ``` Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript: ```js 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](http://gruntjs.com/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. [JS-YAML]: https://github.com/nodeca/js-yaml/ [JS-YAML documentation]: https://github.com/nodeca/js-yaml/ 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](http://gruntjs.com/configuring-tasks#task-configuration-and-targets)) will lint the project's YAML files in the `lib` and `test` directories and their subdirectores, using the default JS-YAML options. ```js // 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](https://github.com/gruntjs/grunt-contrib-concat) `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`. ```js // 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. ```js // 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 [Options][]: - `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#id2802346 - `JSON_SCHEMA` - all JSON-supported types: http://www.yaml.org/spec/1.2/spec.html#id2803231 - `CORE_SCHEMA` - same as `JSON_SCHEMA`: http://www.yaml.org/spec/1.2/spec.html#id2804923 - `DEFAULT_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. [Options]: https://github.com/nodeca/js-yaml/blob/master/README.md#safeload-string---options- ## Release History * 2014-10-20  v0.1.0   Work in progress, not yet officially released.