/ / Как да се избегне eslint-plugin-import resolver при използване на airbnb-eslint

Как да преодолеете eslint-plugin-import резолвера, докато използвате airbnb-eslint

Опитвам се да го използвам eslint-внос-Резолвер-Бабел-модул но без успех. Конфигурацията на Airbnb използва резолвера "възел" и изглежда, че се използва само.

Ето моята конфигурация:

{
"env": {
"browser": true
},
"extends": "airbnb",
"plugins": [
"react",
"jsx-a11y",
"import"
],
"rules": {
"no-param-reassign": [2, { "props": false }]
},
"parser": "babel-eslint",
"root": true,
"settings": {
"import/resolver": {
"babel-module": {}
}
}
}

Имам компилиран конфиг използвайки това:

$ ./node_modules/.bin/eslint --print-config src/test.js > eslintconfig 2>&1

Извадка от резултата:

...
"settings": {
"import/resolver": {
"node": {
"extensions": [
".js",
".jsx",
".json"
]
},
"babel-module": {}
},
...

След това тествам тази команда

$ cross-env DEBUG=eslint-plugin-import:resolver:* ./node_modules/.bin/eslint src/test.js > eslintdebug 2>&1

продукция

Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node Resolving: client/test2 from: D:XXXsrctest.js
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node resolve threw error: { Error: Cannot find module "client/test2" from "D:XXXsrc"
at Function.module.exports [as sync] (D:XXXnode_modulesresolvelibsync.js:40:15)
at Object.exports.resolve (D:XXXnode_moduleseslint-import-resolver-nodeindex.js:18:28)
at v2 (D:XXXnode_moduleseslint-module-utilsresolve.js:79:23)
at withResolver (D:XXXnode_moduleseslint-module-utilsresolve.js:84:16)
at fullResolve (D:XXXnode_moduleseslint-module-utilsresolve.js:101:22)
at relative (D:XXXnode_moduleseslint-module-utilsresolve.js:46:10)
at resolve (D:XXXnode_moduleseslint-module-utilsresolve.js:172:12)
at checkSourceValue (D:XXXnode_moduleseslint-plugin-importlibrulesno-unresolved.js:29:50)
at checkSourceValue (D:XXXnode_moduleseslint-module-utilsmoduleVisitor.js:29:5)
at EventEmitter.checkSource (D:XXXnode_moduleseslint-module-utilsmoduleVisitor.js:34:5) code: "MODULE_NOT_FOUND" }
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node Resolving: client/test2 from: D:XXXsrctest.js
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node resolve threw error: { Error: Cannot find module "client/test2" from "D:XXXsrc"
at Function.module.exports [as sync] (D:XXXnode_modulesresolvelibsync.js:40:15)
at Object.exports.resolve (D:XXXnode_moduleseslint-import-resolver-nodeindex.js:18:28)
at v2 (D:XXXnode_moduleseslint-module-utilsresolve.js:79:23)
at withResolver (D:XXXnode_moduleseslint-module-utilsresolve.js:84:16)
at fullResolve (D:XXXnode_moduleseslint-module-utilsresolve.js:101:22)
at relative (D:XXXnode_moduleseslint-module-utilsresolve.js:46:10)
at resolve (D:XXXnode_moduleseslint-module-utilsresolve.js:172:12)
at resolveImportType (D:XXXnode_moduleseslint-plugin-importlibcoreimportType.js:74:65)
at reportIfMissing (D:XXXnode_moduleseslint-plugin-importlibrulesno-extraneous-dependencies.js:74:32)
at EventEmitter.ImportDeclaration (D:XXXnode_moduleseslint-plugin-importlibrulesno-extraneous-dependencies.js:144:9) code: "MODULE_NOT_FOUND" }
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node Resolving: client/test2 from: D:XXXsrctest.js
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node resolve threw error: { Error: Cannot find module "client/test2" from "D:XXXsrc"
at Function.module.exports [as sync] (D:XXXnode_modulesresolvelibsync.js:40:15)
at Object.exports.resolve (D:XXXnode_moduleseslint-import-resolver-nodeindex.js:18:28)
at v2 (D:XXXnode_moduleseslint-module-utilsresolve.js:79:23)
at withResolver (D:XXXnode_moduleseslint-module-utilsresolve.js:84:16)
at fullResolve (D:XXXnode_moduleseslint-module-utilsresolve.js:101:22)
at relative (D:XXXnode_moduleseslint-module-utilsresolve.js:46:10)
at resolve (D:XXXnode_moduleseslint-module-utilsresolve.js:172:12)
at EventEmitter.ImportDeclaration (D:XXXnode_moduleseslint-plugin-importlibrulesno-duplicates.js:37:52)
at emitOne (events.js:101:20)
at EventEmitter.emit (events.js:191:7) code: "MODULE_NOT_FOUND" }
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node Resolving: client/test2 from: D:XXXsrctest.js
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node resolve threw error: { Error: Cannot find module "client/test2" from "D:XXXsrc"
at Function.module.exports [as sync] (D:XXXnode_modulesresolvelibsync.js:40:15)
at Object.exports.resolve (D:XXXnode_moduleseslint-import-resolver-nodeindex.js:18:28)
at v2 (D:XXXnode_moduleseslint-module-utilsresolve.js:79:23)
at withResolver (D:XXXnode_moduleseslint-module-utilsresolve.js:84:16)
at fullResolve (D:XXXnode_moduleseslint-module-utilsresolve.js:101:22)
at relative (D:XXXnode_moduleseslint-module-utilsresolve.js:46:10)
at resolve (D:XXXnode_moduleseslint-module-utilsresolve.js:172:12)
at EventEmitter.checkFileExtension (D:XXXnode_moduleseslint-plugin-importlibrulesextensions.js:81:50)
at emitOne (events.js:101:20)
at EventEmitter.emit (events.js:191:7) code: "MODULE_NOT_FOUND" }
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node Resolving: client/test2 from: D:XXXsrctest.js
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node resolve threw error: { Error: Cannot find module "client/test2" from "D:XXXsrc"
at Function.module.exports [as sync] (D:XXXnode_modulesresolvelibsync.js:40:15)
at Object.exports.resolve (D:XXXnode_moduleseslint-import-resolver-nodeindex.js:18:28)
at v2 (D:XXXnode_moduleseslint-module-utilsresolve.js:79:23)
at withResolver (D:XXXnode_moduleseslint-module-utilsresolve.js:84:16)
at fullResolve (D:XXXnode_moduleseslint-module-utilsresolve.js:101:22)
at relative (D:XXXnode_moduleseslint-module-utilsresolve.js:46:10)
at resolve (D:XXXnode_moduleseslint-module-utilsresolve.js:172:12)
at Function.ExportMap.get (D:XXXnode_moduleseslint-plugin-importlibExportMap.js:281:38)
at checkDefault (D:XXXnode_moduleseslint-plugin-importlibrulesno-named-as-default.js:25:41)
at emitOne (events.js:101:20) code: "MODULE_NOT_FOUND" }
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node Resolving: client/test2 from: D:XXXsrctest.js
Sun, 06 Aug 2017 14:16:33 GMT eslint-plugin-import:resolver:node resolve threw error: { Error: Cannot find module "client/test2" from "D:XXXsrc"
at Function.module.exports [as sync] (D:XXXnode_modulesresolvelibsync.js:40:15)
at Object.exports.resolve (D:XXXnode_moduleseslint-import-resolver-nodeindex.js:18:28)
at v2 (D:XXXnode_moduleseslint-module-utilsresolve.js:79:23)
at withResolver (D:XXXnode_moduleseslint-module-utilsresolve.js:84:16)
at fullResolve (D:XXXnode_moduleseslint-module-utilsresolve.js:101:22)
at relative (D:XXXnode_moduleseslint-module-utilsresolve.js:46:10)
at resolve (D:XXXnode_moduleseslint-module-utilsresolve.js:172:12)
at Function.ExportMap.get (D:XXXnode_moduleseslint-plugin-importlibExportMap.js:281:38)
at EventEmitter.handleImportDefault (D:XXXnode_moduleseslint-plugin-importlibrulesno-named-as-default-member.js:35:45)
at emitOne (events.js:101:20) code: "MODULE_NOT_FOUND" }

[4mD:XXXsrctest.js[24m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-unresolved[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-extraneous-dependencies[22m
[2m1:1[22m   [31merror[39m  "client" should be listed in the project"s dependencies. Run "npm i -S client" to add it  [2mimport/no-extraneous-dependencies[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-duplicates[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/extensions[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-named-as-default[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-named-as-default-member[22m
[2m1:8[22m   [31merror[39m  "test" is defined but never used                                                          [2mno-unused-vars[22m
[2m1:18[22m  [31merror[39m  Unable to resolve path to module "client/test2"                                           [2mimport/no-unresolved[22m
[2m1:18[22m  [31merror[39m  Missing file extension for "client/test2"                                                 [2mimport/extensions[22m

[31m[1m✖ 10 problems (10 errors, 0 warnings)
[22m[39m

И тук, както можете да видите само eslint-plugin-import:resolver:node се използва, без оглед eslint-plugin-import:resolver:babel-module.

Също така опитах това:

"settings": {
"import/resolver": "babel-module"
}

Но резултатите са още по-лоши:

[4mD:XXXsrctest.js[24m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-unresolved[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-extraneous-dependencies[22m
[2m1:1[22m   [31merror[39m  "client" should be listed in the project"s dependencies. Run "npm i -S client" to add it  [2mimport/no-extraneous-dependencies[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-duplicates[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/extensions[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-named-as-default[22m
[2m1:1[22m   [31merror[39m  Resolve error: undefined                                                                  [2mimport/no-named-as-default-member[22m
[2m1:8[22m   [31merror[39m  "test" is defined but never used                                                          [2mno-unused-vars[22m
[2m1:18[22m  [31merror[39m  Unable to resolve path to module "client/test2"                                           [2mimport/no-unresolved[22m
[2m1:18[22m  [31merror[39m  Missing file extension for "client/test2"                                                 [2mimport/extensions[22m

[31m[1m✖ 10 problems (10 errors, 0 warnings)
[22m[39m

Версии на зависимостите:

$ npm ls babel-plugin-module-resolver eslint-import-resolver-babel-module eslint-config-airbnb eslint-plugin-import eslint
house@0.1.0 D:XXX
+-- babel-plugin-module-resolver@2.7.1
+-- eslint@3.19.0
+-- eslint-config-airbnb@15.0.2
+-- eslint-import-resolver-babel-module@3.0.0
`-- eslint-plugin-import@2.7.0

Как да премахнете настройките на плъгините на родителската конфигурация?

Отговори:

0 за отговор № 1

Оказва се eslint-plugin-import взема списък с разрешители и ги проверява един по един, докато един от тях не реши файла правилно.