我最近将项目迁移到了 Next.js 15,但 ESLint 无法正常运行。到目前为止,我已安装了以下软件包:
"eslint": "9.13.0",
"eslint-config-next": "15.0.1",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.2.1",
"next": "15.0.1"
.prettierrc.json
:
{
"printWidth": 110,
"bracketSpacing": true,
"tabWidth": 4,
"endOfLine": "auto",
"trailingComma": "es5",
"semi": true,
"singleQuote": true
}
settings.json
在 VS Code 中:
{
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.fixAll": "explicit"
},
"prettier.printWidth": 80,
}
eslint.config.mjs
:
import pluginNext from '@next/eslint-plugin-next';
export default defineConfig([
{
plugins: {
'@next/next': pluginNext,
},
},
{
files: ['**/*.ts', '**/*.tsx'],
rules: {
...pluginNext.configs.recommended.rules,
},
},
]);
如果我添加 eslintrc.json,它在运行时将会起作用yarn lint
,但在 VS Code 中无法实时起作用。
尽管已安装,ESLint 似乎并未对我的文件进行 lint 或在 VS Code 中显示任何错误。如能提供关于为 Next.js 15 配置 ESLint 的任何指导,我将不胜感激。ESLint 是否需要任何特定设置或依赖项才能与 Next.js 15 无缝协作?
3
最佳答案
2
对我来说一切都很好。尝试重新启动 eslint 服务器 ( ctrl
++ shift
– p
> restart eslint server
)、重新加载 VSCode ( ctrl
++ shift
– p
> reload window
) 并确保您使用的是最新版本的 ESLint 扩展(也许尝试切换到预发布版本并重复前面的步骤)。
2
-
当我使用 eslint 9 的新结构时仍然不起作用:(
– -
我也有这样的配置规则
settings.json
:"[typescript]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" },
"[typescriptreact]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" },
–
|
使用兼容模式
原来的:
{
"extends": [
"next/core-web-vitals",
"plugin:@tanstack/eslint-plugin-query/recommended",
"prettier"
],
"plugins": ["@tanstack/query"]
}
平坦的:
import { FlatCompat } from "@eslint/eslintrc"
import path from "path"
import { fileURLToPath } from "url"
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const compat = new FlatCompat({
baseDirectory: __dirname,
})
/** @type {import('eslint').Linter.Config[]} */
const configs = [
...compat.extends("next/core-web-vitals"),
...compat.extends("next/typescript"),
...compat.extends("plugin:@tanstack/eslint-plugin-query/recommended"),
...compat.extends("prettier"),
...compat.plugins("@tanstack/query"),
]
export default configs
|
eslint.useFlatConfig
为true
–
–
eslintrc.json
文件,但您共享的是eslint.config.mjs
–
|