我正在尝试将代码提交到 git 并遇到此问题:
Oops! Something went wrong! :(
ESLint: 8.50.0
ESLint couldn't determine the plugin "import" uniquely.
- /Users/krish/Documents/frontend/node_modules/.pnpm/[email protected]\_@[email protected][email protected][email protected][email protected]/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/[email protected]\_@[email protected][email protected][email protected][email protected]/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
中进行更改,但仍然出现问题。
{
"name": "quizizz",
"version": "0.0.0",
"private": true,
"workspaces": [
"apps/*",
"packages/*"
],
"packageManager": "[email protected]",
"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 配置
module.exports = {
root: true,
// This tells ESLint to load the config from the package `eslint-config-custom`
extends: ["custom"],
};
我添加了 package.json 和 eslint 文件(这是来自我的根目录),我还尝试删除节点模块并重新安装它,但它仍然存在。
ESLint 常见问题解答中对此进行了介绍,https://eslint.org/docs/latest/use/troubleshooting/couldnt-define-the-plugin-uniquely:
使用旧版 ESLint 配置系统时,安装依赖项后运行 ESLint 时可能会看到此错误:
...
此问题的常见解决方案包括:
- 将所有软件包的所有版本升级到最新版本
- 运行
或等效的包管理器命令来删除重复包(如果它们的版本范围兼容)npm dedupe
- 使用
或等效的包管理器overrides
字段,强制使用特定版本的插件包package.json
- 请注意,如果插件包在版本之间发生重大更改,这可能会导致 linting 错误
您可能希望将
eslint-plugin-import
添加为 devDependency
,以便其所有使用者解析为同一版本。现在,如错误消息中所述,您在 node_modules/
中获得了它的两个不同版本。
我们还应该注意到您正在使用过时版本的 ESLint(8.x 而不是 9.x)和旧版配置系统。请参阅 https://eslint.org/docs/latest/use/configure/configuration-files 了解新的“平面”配置系统。扁平配置使工作区自定义配置和插件变得更容易,这也可能对您有所帮助。