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-rulesAdd 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