diff --git a/README.md b/README.md index 3e35eafb..20627d32 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ npm install sass-lint --save-dev ## Configuring -Sass-lint can be configured from a `.sass-lint.yml` file in your project. If you don't have one in the root of your project or you would like all your projects to follow a standard config file then you can specify the path to one in your project's `package.json` file. +Sass-lint can be configured from a `.sass-lint.yml` or `.sasslintrc` file in your project. The `.sasslintrc` file can be in either JSON format or YAML. Both formats are interchangeable easily using tools such as [json2yaml](https://www.json2yaml.com/). If you don't either file in the root of your project or you would like all your projects to follow a standard config file then you can specify the path to one in your project's `package.json` file with the `sasslintConfig` option. For example: ```javascript @@ -32,7 +32,7 @@ For example: } ``` -Use the [Sample Config](https://github.com/sasstools/sass-lint/tree/master/docs/sass-lint.yml) as a guide to create your own `.sass-lint.yml` config file. The default configuration can be found [here](https://github.com/sasstools/sass-lint/blob/master/lib/config/sass-lint.yml). +Use the [Sample Config (YAML)](https://github.com/sasstools/sass-lint/tree/master/docs/sass-lint.yml) or [Sample Config (JSON)](https://github.com/sasstools/sass-lint/tree/master/docs/sasslintrc) as a guide to create your own config file. The default configuration can be found [here](https://github.com/sasstools/sass-lint/blob/master/lib/config/sass-lint.yml). ### [Configuration Documentation](https://github.com/sasstools/sass-lint/tree/master/docs/options) @@ -48,7 +48,6 @@ The following are options that you can use to config the Sass Linter. * [merge-default-rules](https://github.com/sasstools/sass-lint/tree/master/docs/options/merge-default-rules.md) - Allows you to merge your rules with the default config file included with sass-lint * [output-file](https://github.com/sasstools/sass-lint/tree/master/docs/options/output-file.md) - Choose to write the linters output to a file - #### Files The `files` option contains two properties, `include` and `ignore`. Both can be set to either a [glob](https://github.com/isaacs/node-glob) or an array of glob strings/file paths depending on your projects' needs and setup. diff --git a/lib/config.js b/lib/config.js index 6f4f5590..3d79ccc1 100644 --- a/lib/config.js +++ b/lib/config.js @@ -52,6 +52,10 @@ module.exports = function (options, configPath) { } else { configPath = confHelpers.findFile(false, '.sass-lint.yml'); + + if (!configPath) { + configPath = confHelpers.findFile(false, '.sasslintrc'); + } } } else if (!pathIsAbsolute(configPath)) { diff --git a/tests/cli.js b/tests/cli.js index df7c7fef..b2f7bb0c 100644 --- a/tests/cli.js +++ b/tests/cli.js @@ -239,6 +239,47 @@ describe('cli', function () { }); }); + // Test default config files + + it('should return JSON from .sass-lint.yml', function (done) { + var command = 'node ../../../bin/sass-lint ../../cli/cli.scss --verbose'; + + exec(command, { cwd: path.join(__dirname, 'yml', '.sass-lint.yml') }, function (err, stdout) { + + if (err) { + return done(err); + } + else { + try { + JSON.parse(stdout); + return done(); + } + catch (e) { + return done(new Error('Not JSON')); + } + } + }); + }); + + it('should return JSON from .sasslintrc', function (done) { + var command = 'node ../../../bin/sass-lint ../../cli/cli.scss -c ".sasslintrc" --verbose'; + + exec(command, { cwd: path.join(__dirname, 'yml', '.sasslintrc') }, function (err, stdout) { + if (err) { + return done(err); + } + else { + try { + JSON.parse(stdout); + return done(); + } + catch (e) { + return done(new Error('Not JSON')); + } + } + }); + }); + // Test custom config path it('should return JSON from a custom config', function (done) { diff --git a/tests/yml/.sass-lint.yml/.sass-lint.yml b/tests/yml/.sass-lint.yml/.sass-lint.yml new file mode 100644 index 00000000..2ba37375 --- /dev/null +++ b/tests/yml/.sass-lint.yml/.sass-lint.yml @@ -0,0 +1,8 @@ +options: + formatter: json + cache-config: false + merge-default-rules: false +files: + include: '**/*.s+(a|c)ss' +rules: + no-color-keywords: 1 diff --git a/tests/yml/.sasslintrc/.sasslintrc b/tests/yml/.sasslintrc/.sasslintrc new file mode 100644 index 00000000..a7505d0c --- /dev/null +++ b/tests/yml/.sasslintrc/.sasslintrc @@ -0,0 +1,13 @@ +{ + "options": { + "formatter": "json", + "cache-config": false, + "merge-default-rules": false + }, + "files": { + "include": "**/*.s+(a|c)ss" + }, + "rules": { + "no-color-keywords": 1 + } +}