Skip to content

Configurations in upper folders are always ignored #355

Closed
@redeyes2015

Description

@redeyes2015

Tell us about your environment

  • ESLint Version: 4.16.0
  • eslint-plugin-vue Version: 4.2.0
  • Node Version: 6.8.1

Please show your full configuration:

Say, I have this setting: (modified from ESLint configuration cascading example)

your-project
├── .eslintrc.yaml // (A)
└── app
      ├── source.js    
      └─┬ vue_components
        ├── .eslintrc.yaml // (B)
        └─ foo.vue

And in (A), I set

  root: true
  rules:
    semi:
      - error
      - always

In (B):

    extends:
        - plugin:vue/essential

What did you do? Please include the actual source code causing the issue.

In foo.vue:

<script>
console.log(hi)    // no semi
</script>

What did you expect to happen?

ESLint should report error about "Missing semicolon"

What actually happened? Please include the actual, raw output from ESLint.

ESLint considered everything fine and output nothing.


I traced the flow of ESLint, and found that the root: true in config/base.js which comes from update-lib-config.js resulting the very config file including "pulgin: vue" would be considered root and thus making ESLint ignore any config file in upper directories. In my example, the config of semi: always is ignored.

Because we are adopting Vue gragually, we want this kind of configuration. A root: false in (B) could work, but I think root: true should be used in the project config file, since providing it from a ESLint plugin only causes confusion. (Maybe ESLint should block this?)

I did search through the issues and did not find reports about this, but if I just missed it, please accept my apology, and close this issue.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions