Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 740
griffin2000 Avatar asked May 09 '19 17:05

griffin2000


1 Answers

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.

like image 190
MauriceNino Avatar answered Nov 11 '22 10:11

MauriceNino