1 . Add dependencies:
package.json:
..
"devDependencies": {
"any-eslint-parser": "1.0.0",
"eslint": "*",
2 . Configure eslint with the required rules, e.g. eol-last and no-tabs:
.eslintrc-any.json:
{
"parser": "any-eslint-parser",
"rules": {
"eol-last": "error",
"no-tabs": "error"
}
}
Any eslint rule that not required AST can be used, this example uses
eol-lastandno-tabs.
3 . Configure linting script:
package.json:
"scripts": {
"lint.any": "eslint --config .eslintrc-any.json \"**/*.+(js|jsx|ts|tsx|json|yml|xml|sh|txt|md|svg|properties|gradle|java|cpp|c|html|css|groovy|gitignore|npmignore)\"",
any-eslint-parser provides a parser so “any” type of file can be checked by eslint. Although eslint claims to be AST-based, there are rules that does not based on AST, rather they are based on the text content of the file, e.g. eol-last, no-tabs, eslint-plugin-regex, etc.
any-eslint-parser can be used to check json files, yaml files, script files, source code files in any programming language (e.g. java, c++, groovy, etc.), svg files, markdown files, etc.

This idea arise from the need to use
eslint-plugin-regexin other type of files, besides javascript. (Then saw on this as a more versatile and configurable way to check common files than using lintspaces)
eslint-plugin-regex.eslintrc-any.json or any parent have rules that require AST, those will be ignored when using any-eslint-parser..eslintrc.json file when using any-eslint-parser (take a look at Migrating to eslint/any-eslint-parser from lintspaces as detailed example).
--no-eslintrc option can be very helpful since will ignore all configuration files, i.e .eslintrc.* and package.json, only taking in account the one set with --config option.--ignore-pattern or --ignore-path.--no-eslintrc, --ignore-pattern and --ignore-path are very useful when other parser are used in the project in order to avoid conflicts..eslintrc-any.json
{
"parser": "any-eslint-parser",
"rules": {
"eol-last": "error",
"no-tabs": "error"
}
}
package.json:
"scripts": {
"lint.any": "eslint --config .eslintrc-any.json \"**/[\\.a-zA-Z]*.+(js|jsx|ts|tsx|json|yml|xml|sh|txt|md|svg|properties|gradle|java|cpp|c|html|css|groovy)\" \"**/.+(|gitignore|npmignore)\" --no-eslintrc --ignore-pattern \"build\""
},
"devDependencies": {
"any-eslint-parser": "1.0.0",
"eslint": "*"
}
More detail at Migrating to eslint/any-eslint-parser from lintspaces.
eslint-plugin-regexRequiring Copyright and License on every source file of a project.
.eslintrc-any.json
{
"plugins": ["regex"],
"parser": "any-eslint-parser",
"rules": {
"regex/required": [
"error", [
"^(?:(?:\\/\\/)|#) Copyright \\(c\\) Super Team",
"^(?:(?:\\/\\/)|#) Licensed under the MIT License \\(MIT\\), see LICENSE.txt"
]
]
}
}
package.json:
"scripts": {
"lint.any": "eslint --config .eslintrc-any.json \"**/*.+(js|jsx|ts|tsx|gradle|java|cpp|c|groovy|yml|sh)\""
},
"devDependencies": {
"any-eslint-parser": "1.0.0",
"eslint": "*",
"eslint-plugin-regex": "*"
}
More regex rules examples at eslint-plugin-regex and eslint-plugin-base-style-config regex rules.
MIT License ______
Don’t forget:
At life:
At work: