Need help with eslint-plugin-filenames?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

selaux
224 Stars 28 Forks 67 Commits 24 Opened issues

Description

Eslint plugin to check filenames.

Services available

!
?

Need anything else?

Contributors list

# 87,805
React
c-plus-...
netlify...
GitHub
43 commits
# 24,696
Shell
Node.js
express...
chai
3 commits
# 72,077
ESLint
es6-pro...
CSS
Vue.js
2 commits
# 4,228
glsl
Vue.js
excel
XML
1 commit
# 295,409
React
nextjs
Rust
spotify
1 commit
# 298,960
Gulp
TypeScr...
HTML
firesto...
1 commit
# 721,654
JavaScr...
1 commit
# 55,895
alfred
seleniu...
test-fr...
visual-...
1 commit
# 424,423
PHP
Shell
symfony...
Symfony
1 commit

eslint-plugin-filenames

This project is no longer actively maintained

NPM Version Build Status Coverage Status Dependencies

Adds eslint rules to ensure consistent filenames for your javascript files.

Please note: This plugin will only lint the filenames of the

.js
,
.jsx
files you are linting with eslint. It will ignore other files that are not linted with eslint.

Enabling the plugin

This plugin requires a version of

eslint>=1.0.0
to be installed as a peer dependency.

Modify your

.eslintrc
file to load the plugin and enable the rules you want to use.
{
  "plugins": [
    "filenames"
  ],
  "rules": {
    "filenames/match-regex": 2,
    "filenames/match-exported": 2,
    "filenames/no-index": 2
  }
}

Rules

Consistent Filenames via regex (match-regex)

A rule to enforce a certain file naming convention using a regular expression.

The convention can be configured using a regular expression (the default is

camelCase.js
). Additionally exporting files can be ignored with a second configuration parameter.
"filenames/match-regex": [2, "^[a-z_]+$", true]

With these configuration options,

camelCase.js
will be reported as an error while
snake_case.js
will pass. Additionally the files that have a named default export (according to the logic in the
match-exported
rule) will be ignored. They could be linted with the
match-exported
rule. Please note that exported function calls are not respected in this case.

Matching Exported Values (match-exported)

Match the file name against the default exported value in the module. Files that dont have a default export will be ignored. The exports of

index.js
are matched against their parent directory.
// Considered problem only if the file isn't named foo.js or foo/index.js
export default function foo() {}

// Considered problem only if the file isn't named Foo.js or Foo/index.js module.exports = class Foo() {}

// Considered problem only if the file isn't named someVariable.js or someVariable/index.js module.exports = someVariable;

// Never considered a problem export default { foo: "bar" };

If your filename policy doesn't quite match with your variable naming policy, you can add one or multiple transforms:

"filenames/match-exported": [ 2, "kebab" ]

Now, in your code:

// Considered problem only if file isn't named variable-name.js or variable-name/index.js
export default function variableName;

Available transforms: 'snake', 'kebab', 'camel', and 'pascal' (camel-cased with first letter in upper case).

For multiple transforms simply specify an array like this (null in this case stands for no transform):

"filenames/match-exported": [2, [ null, "kebab", "snake" ] ]

If you prefer to use suffixes for your files (e.g.

Foo.react.js
for a React component file), you can use a second configuration parameter. It allows you to remove parts of a filename matching a regex pattern before transforming and matching against the export.
"filenames/match-exported": [ 2, null, "\\.react$" ]

Now, in your code:

// Considered problem only if file isn't named variableName.react.js, variableName.js or variableName/index.js
export default function variableName;

If you also want to match exported function calls you can use the third option (a boolean flag).

"filenames/match-exported": [ 2, null, null, true ]

Now, in your code:

// Considered problem only if file isn't named functionName.js or functionName/index.js
export default functionName();

Don't allow index.js files (no-index)

Having a bunch of

index.js
files can have negative influence on developer experience, e.g. when opening files by name. When enabling this rule.
index.js
files will always be considered a problem.

Changelog

1.3.2

  • Fix issue with
    match-regex
    and
    getExportedName

1.3.1

  • Put breaking change from
    1.3.0
    behind a flag

1.3.0

  • Support call expressions as named exports

1.2.0

  • Introduce
    strip
    option for
    match-exported
  • Introduce support for multiple transform options
  • Introduce
    pascal
    transform

1.1.0

  • Introduce
    transform
    option for
    match-exported

1.0.0

  • Split rule into
    match-regex
    ,
    match-exported
    and
    no-index

0.2.0

  • Add match-exported flags

0.1.2

  • Fix example in README

0.1.1

  • Fix: Text via stdin always passes
  • Tests: Travis builds also run on node 0.12 and iojs now

0.1.0

  • Initial Release

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.