Adds an ESLint rule to enforce filename conventions for linted files. Allows different options for different file extensions. Supports custom regular expressions.
$ npm install -D eslint-plugin-filename-rules
Add it to your .eslintrc.js
:
module.exports = {
plugins: [
'filename-rules',
],
rules: {
'filename-rules/match': [2, 'camelcase'],
},
};
The following built-in values are supported: pascalcase
/PascalCase
, camelcase
/camelCase
, snakecase
/snake_case
, kebabcase
/kebab-case
. You can also provide your own regex:
...
'filename-rules/match': [2, /^([a-z]+-)*[a-z]+(?:\..*)?$/],
...
You can also specify different options for different file extensions. In this case the plugin will only check files with extensions you explicitly provided:
...
'filename-rules/match': [2, { '.js': 'camelCase', '.ts': /^([a-z]+-)*[a-z]+(?:\..*)?$/ }],
...
You can use the includePath: true
option to have the pattern matched against the full file path (instead of only the file basename):
...
'filename-rules/match': [2, { includePath: true, pattern: /^([a-z]+-)*[a-z]+(?:\..*)?$/ }],
...
The inverse rule not-match
checks that the files do NOT match the given pattern. Supports all the same options:
...
'filename-rules/not-match': [2, 'camelCase'],
...
MIT