Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

'extends: eslint:recommended' causes *all* rules to be considered used #191

Open
wolfgang42 opened this issue Oct 18, 2016 · 8 comments
Open

Comments

@wolfgang42
Copy link

Take the following minimal .eslintrc.yaml:

extends: eslint:recommended

When I run eslint-find-rules -c .eslintrc.yaml it dumps a list of every eslint rule, which is extremely unhelpful.

I think the problem here is that eslint:recommended is implemented by setting the value for non-recommended rules to off instead of leaving them out. The only workaround I can think of for this is to explicitly mask out eslint:recommended and then later fill them back in. However, this seems like a bit of a bodge; is there a better way to do this?

The alternative is to add a flag such as --off-is-unused to consider any rules which have been turned off to be unused. Of course, that would prevent rules from being removed from the list.

@ljharb
Copy link
Collaborator

ljharb commented Oct 18, 2016

"used" means precisely that - "defined". It's not "--enabled".

I think a new flag that finds rules that aren't enabled would be great! However, that's an entirely separate flag than --unused - otherwise you'd be breaking the existing use case of locating rules that aren't defined in the eslint config.

@wolfgang42
Copy link
Author

No, I completely understand that 'unused' is different from 'enabled'. I think the problem is that I expected eslint:recommended to only define the list of recommended rules, in the same way that for example eslint-config-standard only lists the rules it's enabling, rather than listing out every possible eslint rule.

My specific use case is writing an eslint config that's based off the recommended list with a lot of extra rules added. Right now I'm commenting out the extends line, running eslint-find-rules, and manually removing all of the recommended rules from the list.

Basically, what I'm looking for is something like eslint-find-rules --unused --no-extends .eslintrc.yaml minus eslint-find-rules --enabled --only-extends .eslintrc.yaml

Hopefully that makes sense? Now that I look closer at the eslint API I'm not even sure if it's possible to do this, but it's kind of hard for me to tell without diving in and having a go at it.

@ta2edchimp
Copy link
Collaborator

It will eventually be possible, once getRules() is exposed by ESLint's API (see #172 and issues linked within).

@ljharb
Copy link
Collaborator

ljharb commented Oct 18, 2016

I think that if you want the recommended set to only list the rules it's enabling, that perhaps that's a change that should be made upstream in eslint itself?

@IanVS
Copy link

IanVS commented Dec 29, 2016

@jfmengels did you open an issue upstream? I couldn't find one. Seems like a reasonable request to me, and I'm in the same boat as you trying to find unused rules.

Edit: @jfmengels just thumbs-up'ed it. Didn't scroll back up far enough to see that @wolfgang42 was the one who opened originally.

@jfmengels
Copy link
Collaborator

No, I haven't. I could probably in a few days (a bit busy lately), but go ahead if you feel like it in the meantime.

@alexilyaev
Copy link

@ta2edchimp Are you guys considering this?

@ta2edchimp
Copy link
Collaborator

Definitely.

But as I do not have the perfect idea about how to approach this, I'd recommend to use eslint-diff-rules in verbose mode as a workaround in the meanwhile:

eslint-diff-rules [your own config] ./node_modles/eslint/conf/eslint-recommended.js -v

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants