griffin2000
griffin2000

Reputation: 779

Unable to resolve relative module paths when eslint run from sub-folder

When I run eslint from the root folder of my repo everything runs fine, with no errors.

But when I run from a subfolder I get a ton of import/no-unresolved that don't happen when I run from root:

/reporoot/subfolder0/subfolder1/MyFile.js
  11:8   error  Unable to resolve path to module 'foo'  import/no-unresolved
  11:8   error  Missing file extension for "foo"        import/extensions
  14:97  error  Unable to resolve path to module 'foo'  import/no-unresolved
  14:97  error  Missing file extension for "foo"        import/extensions

Doesn't matter how I run. e.g.:

This will work:

cd /reporoot
eslint .

All of these commands will fail with error shown above:

cd subfolder0
eslint .

or

eslint subfolder0

or

eslint /reporoot/subfolder0/subfolder1/MyFile.js

Any idea what the issue is, or thoughts about how to fix it?

Upvotes: 10

Views: 6808

Answers (1)

MauriceNino
MauriceNino

Reputation: 6757

This is probably a problem with absolute paths in your imports according to this GitHub issue.

Try to set this in your .eslintrc.json (Or convert it to any other filetype if you don't use JSON)

"settings": {
    "import/resolver": {
        "node": {
            "extensions": [".js", ".jsx", ".ts", ".tsx"]
        }
    }
}

If the above doesn't work and you just want to get rid of these errors just add this instead:

"settings": {
    "import/no-unresolved": 0, // Turn off "Unable to resolve path to module ..." error
    "import/extensions": 0 // Turn off "Missing file extension for ..." error
}

Disabling this is not that big of a deal anyway because linters are pretty well known for having problems with pathing.

Upvotes: 4

Related Questions