import-js/eslint-plugin-import

Error resolving webpackConfig Error: Cannot find module '/tmp/import-test/node_modules/i18next/webpack.config.js'

Open

#1,861 创建于 2020年7月24日

在 GitHub 查看
 (6 评论) (5 反应) (0 负责人)JavaScript (4,946 star) (1,540 fork)batch import
bughelp wantedpackage: resolver/webpack

描述

If I use eslint-import-resolver-webpack with an explicitly specified "config": "webpack.config.js" setting, and import the i18next module with an ES6 import statement, the resolver incorrectly looks for the webpack config file at node_modules/i18next/webpack.config.js and dies with Error resolving webpackConfig Error: Cannot find module '/tmp/import-test/node_modules/i18next/webpack.config.js'.

The error doesn’t occur if I don’t specify "config", or if I import lodash instead of i18next, or if I use a CJS require("i18next") call.

Here’s a complete minimal reproduction recipe.

Input

package.json

{
  "dependencies": {
    "eslint": "^7.5.0",
    "eslint-import-resolver-webpack": "^0.12.2",
    "eslint-plugin-import": "^2.22.0",
    "i18next": "^19.6.2",
    "webpack": "^4.43.0"
  },
  "eslintConfig": {
    "env": {
      "es6": true
    },
    "parserOptions": {
      "sourceType": "module"
    },
    "extends": [
      "plugin:import/errors"
    ],
    "settings": {
      "import/resolver": {
        "webpack": {
          "config": "webpack.config.js"
        }
      }
    }
  }
}

webpack.config.js

module.exports = {};

src.js

import i18next from "i18next";

Output

$ eslint src.js
Error resolving webpackConfig Error: Cannot find module '/tmp/import-test/node_modules/i18next/webpack.config.js'
Require stack:
- /tmp/import-test/node_modules/eslint-import-resolver-webpack/index.js
- /tmp/import-test/node_modules/eslint-module-utils/resolve.js
- /tmp/import-test/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js
- /tmp/import-test/node_modules/eslint-plugin-import/lib/index.js
- /tmp/import-test/node_modules/eslint/lib/cli-engine/config-array-factory.js
- /tmp/import-test/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js
- /tmp/import-test/node_modules/eslint/lib/cli-engine/cli-engine.js
- /tmp/import-test/node_modules/eslint/lib/eslint/eslint.js
- /tmp/import-test/node_modules/eslint/lib/eslint/index.js
- /tmp/import-test/node_modules/eslint/lib/cli.js
- /tmp/import-test/node_modules/eslint/bin/eslint.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
    at Function.Module._load (internal/modules/cjs/loader.js:842:27)
    at Module.require (internal/modules/cjs/loader.js:1026:19)
    at require (/tmp/import-test/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.exports.resolve (/tmp/import-test/node_modules/eslint-import-resolver-webpack/index.js:79:27)
    at v2 (/tmp/import-test/node_modules/eslint-module-utils/resolve.js:117:23)
    at withResolver (/tmp/import-test/node_modules/eslint-module-utils/resolve.js:122:16)
    at fullResolve (/tmp/import-test/node_modules/eslint-module-utils/resolve.js:139:22)
    at Function.relative (/tmp/import-test/node_modules/eslint-module-utils/resolve.js:84:10)
    at remotePath (/tmp/import-test/node_modules/eslint-plugin-import/lib/ExportMap.js:702:351) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/tmp/import-test/node_modules/eslint-import-resolver-webpack/index.js',
    '/tmp/import-test/node_modules/eslint-module-utils/resolve.js',
    '/tmp/import-test/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js',
    '/tmp/import-test/node_modules/eslint-plugin-import/lib/index.js',
    '/tmp/import-test/node_modules/eslint/lib/cli-engine/config-array-factory.js',
    '/tmp/import-test/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js',
    '/tmp/import-test/node_modules/eslint/lib/cli-engine/cli-engine.js',
    '/tmp/import-test/node_modules/eslint/lib/eslint/eslint.js',
    '/tmp/import-test/node_modules/eslint/lib/eslint/index.js',
    '/tmp/import-test/node_modules/eslint/lib/cli.js',
    '/tmp/import-test/node_modules/eslint/bin/eslint.js'
  ]
}

Oops! Something went wrong! :(

ESLint: 7.5.0

Error: Cannot find module '/tmp/import-test/node_modules/i18next/webpack.config.js'
Require stack:
- /tmp/import-test/node_modules/eslint-import-resolver-webpack/index.js
- /tmp/import-test/node_modules/eslint-module-utils/resolve.js
- /tmp/import-test/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js
- /tmp/import-test/node_modules/eslint-plugin-import/lib/index.js
- /tmp/import-test/node_modules/eslint/lib/cli-engine/config-array-factory.js
- /tmp/import-test/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js
- /tmp/import-test/node_modules/eslint/lib/cli-engine/cli-engine.js
- /tmp/import-test/node_modules/eslint/lib/eslint/eslint.js
- /tmp/import-test/node_modules/eslint/lib/eslint/index.js
- /tmp/import-test/node_modules/eslint/lib/cli.js
- /tmp/import-test/node_modules/eslint/bin/eslint.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
    at Function.Module._load (internal/modules/cjs/loader.js:842:27)
    at Module.require (internal/modules/cjs/loader.js:1026:19)
    at require (/tmp/import-test/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.exports.resolve (/tmp/import-test/node_modules/eslint-import-resolver-webpack/index.js:79:27)
    at v2 (/tmp/import-test/node_modules/eslint-module-utils/resolve.js:117:23)
    at withResolver (/tmp/import-test/node_modules/eslint-module-utils/resolve.js:122:16)
    at fullResolve (/tmp/import-test/node_modules/eslint-module-utils/resolve.js:139:22)
    at Function.relative (/tmp/import-test/node_modules/eslint-module-utils/resolve.js:84:10)
    at remotePath (/tmp/import-test/node_modules/eslint-plugin-import/lib/ExportMap.js:702:351)

贡献者指南