ESLint无法唯一确定import插件问题的解决咨询
解决ESLint无法唯一确定"import"插件的问题
问题详情
提交代码时触发ESLint报错:
Oops! Something went wrong! :( ESLint: 8.50.0 ESLint couldn't determine the plugin "import" uniquely. - /Users/krish/Documents/frontend/node_modules/.pnpm/eslint-plugin-i@2.27.5-4_@typescript-eslint+parser@6.7.4_eslint@8.50.0_typescript@4.8.4__eslint@8.50.0/node_modules/eslint-plugin-i/lib/index.js (loaded in ".eslintrc.cjs » @antfu/eslint-config » @antfu/eslint-config-vue » @antfu/eslint-config-ts » @antfu/eslint-config-basic » plugin:import/recommended") - /Users/krish/Documents/frontend/node_modules/.pnpm/eslint-plugin-i@2.27.5-4_@typescript-eslint+parser@6.7.4_eslint@8.50.0_typescript@5.0.4__eslint@8.50.0/node_modules/eslint-plugin-i/lib/index.js (loaded in ".eslintrc.cjs » @antfu/eslint-config » @antfu/eslint-config-vue » @antfu/eslint-config-ts » @antfu/eslint-config-basic » ./standard") Please remove the "plugins" setting from either config or remove either plugin installation. If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team.
已尝试更换依赖版本、修改package.json、删除重装node_modules,问题仍存在。相关配置文件如下:
根目录package.json
{ "name": "quizizz", "version": "0.0.0", "private": true, "workspaces": [ "apps/*", "packages/*" ], "packageManager": "pnpm@8.6.2", "engines": { "node": ">=18.0.0" }, "scripts": { "build": "turbo run build", "build-join": "turbo run build --filter=join", "build-practice": "turbo run build --filter=practice", "build-practice-dev": "turbo run build-dev --filter=practice", "dev": "FORCE_COLOR=1 turbo run dev ", "dev-admin": "FORCE_COLOR=1 turbo run dev --force --filter=admin --log-prefix=none", "dev-join": "FORCE_COLOR=1 turbo run dev --force --filter=join", "dev-practice": "FORCE_COLOR=1 turbo run dev --filter=practice", "dev-qtility": "FORCE_COLOR=1 turbo run dev --filter=qtility", "dev:support-hub": "FORCE_COLOR=1 turbo run dev --filter=support-hub... --log-prefix=none", "local": "FORCE_COLOR=1 VITE_NODE_ENV=local turbo run dev", "local-admin": "FORCE_COLOR=1 VITE_NODE_ENV=local turbo run dev --filter=admin --log-prefix=none", "lint": "turbo run lint", "lint:ci": "turbo run lint:ci", "lint:ci-diff": "turbo run lint:ci-diff", "format": "prettier --write \"**/*.{ts,tsx,md}\"", "commit": "cz", "prepare": "husky install", "docs:build": "turbo run docs:build --filter=docs", "docs:dev": "turbo run dev --filter=docs", "admin-e2e": "sh ./scripts/run-admin-e2e.sh", "join-e2e": "sh ./scripts/run-join-e2e.sh", "diff-test": "sh ./scripts/run-diff-tests.sh", "check-circular": "sh ./scripts/check-circular-dependencies.sh" }, "dependencies": { "@aws-sdk/client-s3": "^3.635.0", "admin": "^1.4.1", "cheerio": "^1.0.0" }, "devDependencies": { "@playwright/test": "1.44.1", "@snyk/github-codeowners": "1.1.0", "@types/node": "^22.4.2", "commitizen": "4.3.0", "cz-conventional-changelog": "3.3.0", "danger": "^12.3.3", "eslint": "8.50.0", "eslint-config-custom": "workspace:eslint-config-custom", "git-commit-msg-linter": "4.8.3", "husky": "8.0.0", "madge": "7.0.0", "prettier": "2.8.7", "turbo": "1.10.7", "typescript": "5.0.4" }, "config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" } } }
ESLint配置文件(.eslintrc.cjs)
module.exports = { root: true, // This tells ESLint to load the config from the package `eslint-config-custom` extends: ["custom"], };
解决方案
1. 统一TypeScript版本
错误显示eslint-plugin-i存在两个实例,分别依赖typescript@4.8.4和typescript@5.0.4:
- 检查所有工作区(
apps/*、packages/*)下的package.json,若有单独指定typescript版本的,删除该配置,统一使用根目录的typescript@5.0.4 - 确保根目录
package.json中的typescript版本为固定值(无^前缀)
2. 强制锁定eslint-plugin-i版本
在根目录package.json中添加pnpm.overrides字段,强制所有依赖使用同一版本的eslint-plugin-i:
"pnpm": { "overrides": { "eslint-plugin-i": "2.27.5-4" } }
3. 清理缓存并重新安装依赖
执行以下命令彻底清理缓存并重新安装:
pnpm store prune rm -rf node_modules rm pnpm-lock.yaml pnpm install
4. 检查自定义ESLint配置
查看eslint-config-custom的具体配置,确认是否存在重复引入plugin:import/recommended和./standard的情况。若有,去掉其中一个重复的插件引入逻辑,避免加载多个插件实例。
内容的提问来源于stack exchange,提问作者Krushna Balbhim Modhave
相关产品推荐
相关产品推荐

