Skip to content
This repository has been archived by the owner on Oct 18, 2022. It is now read-only.

Cannot find absolute module #1

Open
rtritto opened this issue Aug 11, 2021 · 2 comments
Open

Cannot find absolute module #1

rtritto opened this issue Aug 11, 2021 · 2 comments

Comments

@rtritto
Copy link

rtritto commented Aug 11, 2021

Description

I need to resolve absolute imports with ESLint using jsconfig.json as config.
I get MODULE_NOT_FOUND error.

Steps to reproduce

  1. yarn init -y
  2. yarn add -D eslint eslint-plugin-import eslint-import-resolver-jsconfig eslint-config-airbnb eslint-plugin-jsx-a11y eslint-plugin-react eslint-import-resolver-node
  3. Create file .eslintrc.yml:
extends:
  - airbnb
settings:
  import/resolver:
    jsconfig:
      config: jsconfig.json
  1. Create file jsconfig.json
{
  "compilerOptions": {
    "baseUrl": "."
  },
  "include": [
    "src"
  ]
}
  1. Create file src/a.js:
const b = require('src/b');

const a = () => {
  b();
};

a();
  1. Create file src/b.js:
const b = () => {};

module.exports = b;
  1. yarn eslint .

Results

Actual

yarn log
yarn run v1.22.10
$ .\node_modules\.bin\eslint .
Warning: React version was set to "detect" in eslint-plugin-react settings, but the "react" package is not installed. Assuming latest React version for linting.
Error: Cannot find module 'src/b' from '.\node_modules\eslint-import-resolver-jsconfig'
    at Function.resolveSync [as sync] (.\node_modules\resolve\lib\sync.js:102:15)
    at Object.exports.resolve (.\node_modules\eslint-import-resolver-jsconfig\index.js:67:32)
    at v2 (.\node_modules\eslint-module-utils\resolve.js:117:23)
    at withResolver (.\node_modules\eslint-module-utils\resolve.js:122:14)
    at fullResolve (.\node_modules\eslint-module-utils\resolve.js:139:22)
    at relative (.\node_modules\eslint-module-utils\resolve.js:84:10)
    at resolve (.\node_modules\eslint-module-utils\resolve.js:220:12)
    at checkSourceValue (.\node_modules\eslint-plugin-import\lib\rules\no-unresolved.js:29:53)
    at checkSourceValue (.\node_modules\eslint-module-utils\moduleVisitor.js:29:5)
    at checkCommon (.\node_modules\eslint-module-utils\moduleVisitor.js:67:5) {
  code: 'MODULE_NOT_FOUND'
}
Error: Cannot find module 'src/b' from '.\node_modules\eslint-import-resolver-jsconfig'
    at Function.resolveSync [as sync] (.\node_modules\resolve\lib\sync.js:102:15)
    at Object.exports.resolve (.\node_modules\eslint-import-resolver-jsconfig\index.js:67:32)
    at v2 (.\node_modules\eslint-module-utils\resolve.js:117:23)
    at withResolver (.\node_modules\eslint-module-utils\resolve.js:122:14)
    at fullResolve (.\node_modules\eslint-module-utils\resolve.js:139:22)
    at relative (.\node_modules\eslint-module-utils\resolve.js:84:10)
    at resolve (.\node_modules\eslint-module-utils\resolve.js:220:12)
    at resolveImportType (.\node_modules\eslint-plugin-import\lib\core\importType.js:109:2758)
    at reportIfMissing (.\node_modules\eslint-plugin-import\lib\rules\no-extraneous-dependencies.js:171:35)
    at commonjs (.\node_modules\eslint-plugin-import\lib\rules\no-extraneous-dependencies.js:268:9) {
  code: 'MODULE_NOT_FOUND'
}
Error: Cannot find module 'src/b' from '.\node_modules\eslint-import-resolver-jsconfig'
    at Function.resolveSync [as sync] (.\node_modules\resolve\lib\sync.js:102:15)
    at Object.exports.resolve (.\node_modules\eslint-import-resolver-jsconfig\index.js:67:32)
    at v2 (.\node_modules\eslint-module-utils\resolve.js:117:23)
    at withResolver (.\node_modules\eslint-module-utils\resolve.js:122:14)
    at fullResolve (.\node_modules\eslint-module-utils\resolve.js:139:22)
    at relative (.\node_modules\eslint-module-utils\resolve.js:84:10)
    at resolve (.\node_modules\eslint-module-utils\resolve.js:220:12)
    at reportIfMissing (.\node_modules\eslint-plugin-import\lib\rules\no-extraneous-dependencies.js:175:43)
    at commonjs (.\node_modules\eslint-plugin-import\lib\rules\no-extraneous-dependencies.js:268:9)
    at checkSourceValue (.\node_modules\eslint-module-utils\moduleVisitor.js:29:5) {
  code: 'MODULE_NOT_FOUND'
}
Error: Cannot find module 'src/b' from '.\node_modules\eslint-import-resolver-jsconfig'
    at Function.resolveSync [as sync] (.\node_modules\resolve\lib\sync.js:102:15)
    at Object.exports.resolve (.\node_modules\eslint-import-resolver-jsconfig\index.js:67:32)
    at v2 (.\node_modules\eslint-module-utils\resolve.js:117:23)
    at withResolver (.\node_modules\eslint-module-utils\resolve.js:122:14)
    at fullResolve (.\node_modules\eslint-module-utils\resolve.js:139:22)
    at relative (.\node_modules\eslint-module-utils\resolve.js:84:10)
    at resolve (.\node_modules\eslint-module-utils\resolve.js:220:12)
    at checkFileExtension (.\node_modules\eslint-plugin-import\lib\rules\extensions.js:153:53)
    at checkSourceValue (.\node_modules\eslint-module-utils\moduleVisitor.js:29:5)
    at checkCommon (.\node_modules\eslint-module-utils\moduleVisitor.js:67:5) {
  code: 'MODULE_NOT_FOUND'
}
Error: Cannot find module 'src/b' from '.\node_modules\eslint-import-resolver-jsconfig'
    at Function.resolveSync [as sync] (.\node_modules\resolve\lib\sync.js:102:15)
    at Object.exports.resolve (.\node_modules\eslint-import-resolver-jsconfig\index.js:67:32)
    at v2 (.\node_modules\eslint-module-utils\resolve.js:117:23)
    at withResolver (.\node_modules\eslint-module-utils\resolve.js:122:14)
    at fullResolve (.\node_modules\eslint-module-utils\resolve.js:139:22)
    at relative (.\node_modules\eslint-module-utils\resolve.js:84:10)
    at resolve (.\node_modules\eslint-module-utils\resolve.js:220:12)
    at checkFileExtension (.\node_modules\eslint-plugin-import\lib\rules\extensions.js:163:34)
    at checkSourceValue (.\node_modules\eslint-module-utils\moduleVisitor.js:29:5)
    at checkCommon (.\node_modules\eslint-module-utils\moduleVisitor.js:67:5) {
  code: 'MODULE_NOT_FOUND'
}
Error: Cannot find module 'src/b' from '.\node_modules\eslint-import-resolver-jsconfig'
    at Function.resolveSync [as sync] (.\node_modules\resolve\lib\sync.js:102:15)
    at Object.exports.resolve (.\node_modules\eslint-import-resolver-jsconfig\index.js:67:32)
    at v2 (.\node_modules\eslint-module-utils\resolve.js:117:23)
    at withResolver (.\node_modules\eslint-module-utils\resolve.js:122:14)
    at fullResolve (.\node_modules\eslint-module-utils\resolve.js:139:22)
    at relative (.\node_modules\eslint-module-utils\resolve.js:84:10)
    at resolve (.\node_modules\eslint-module-utils\resolve.js:220:12)
    at resolveImportType (.\node_modules\eslint-plugin-import\lib\core\importType.js:109:2758)
    at computeRank (.\node_modules\eslint-plugin-import\lib\rules\order.js:319:43)
    at registerNode (.\node_modules\eslint-plugin-import\lib\rules\order.js:335:14) {
  code: 'MODULE_NOT_FOUND'
}
Error: Cannot find module 'src/b' from '.\node_modules\eslint-import-resolver-jsconfig'
    at Function.resolveSync [as sync] (.\node_modules\resolve\lib\sync.js:102:15)
    at Object.exports.resolve (.\node_modules\eslint-import-resolver-jsconfig\index.js:67:32)
    at v2 (.\node_modules\eslint-module-utils\resolve.js:117:23)
    at withResolver (.\node_modules\eslint-module-utils\resolve.js:122:14)
    at fullResolve (.\node_modules\eslint-module-utils\resolve.js:139:22)
    at relative (.\node_modules\eslint-module-utils\resolve.js:84:10)
    at resolve (.\node_modules\eslint-module-utils\resolve.js:220:12)
    at isImportingSelf (.\node_modules\eslint-plugin-import\lib\rules\no-self-import.js:14:70)
    at commonjs (.\node_modules\eslint-plugin-import\lib\rules\no-self-import.js:35:9)
    at checkSourceValue (.\node_modules\eslint-module-utils\moduleVisitor.js:29:5) {
  code: 'MODULE_NOT_FOUND'
}

.\src\a.js
  1:19  error  Unable to resolve path to module 'src/b'  import/no-unresolved

✖ 1 problem (1 error, 0 warnings)

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Expected

No errors in log.

Additional Information

Versions

eslint: 7.32.0
eslint-config-airbnb: 18.2.1
eslint-plugin-jsx-a11y: 6.4.1
eslint-plugin-react: 7.24.0
eslint-plugin-import: 2.24.0
eslint-import-resolver-node: 0.3.5
eslint-import-resolver-jsconfig: 1.1.0
yarn: 1.22.10 (same with 2.4.2 or 3.0.0 or 3.0.1-rc.2)
node: 14.17.0
OS: Windows

@klausbadelt
Copy link

This plugin resolves the "paths" settings under "compilerOptions" in your jsconfig.json, so you don't need src/b but can use, for example, @/b. (In your case, a simple ./b would suffice without this plugin, of course).

@rtritto
Copy link
Author

rtritto commented Sep 7, 2021

I think that this plugin should also support "include" option to resolve imports.
I did an example to use an absolute import (import path doesn't depend on where is used), so correct import is src/b.

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

No branches or pull requests

2 participants