nextjs16配置eslint+prettier

  • ESLint + Prettier 配合 :
    • ESLint 负责"代码正确性和潜在错误"
    • Prettier 负责"代码格式化"
    • 避免 ESLint 因格式化问题报错,可以通过 eslint-config-prettier 或 eslint-plugin-prettier 配合
  • Next.js 官方推荐 :
    • Next.js 默认生成的模板就支持 ESLint
    • 可以通过 --eslint、--tailwind 等选项快速生成
    • 保持代码质量和团队统一风格

一、首先创建一个nextjs项目

javascript 复制代码
pnpm create next-app@latest nextjs-template --yes --src-dir

这里两个参数的作用分别是:

  • --yes:--yes 使用保存的偏好设置或默认值来跳过提示。默认设置启用 TypeScript、Tailwind CSS、ESLint、App Router 和 Turbopack,包含导入别名 @/*,并包括 AGENTS.md(其中引用了 CLAUDE.md)以指导编码代理编写最新的 Next.js 代码。
  • --src-dir:强制将应用代码放到 src/ 目录下

创建完成后目录类似:

javascript 复制代码
my-app/
├─ src/
│  ├─ app/
│  │  ├─ layout.tsx
│  │  ├─ page.tsx
│  │  └─ globals.css
│  └─ ...
├─ public/
├─ package.json
├─ next.config.ts
└─ tsconfig.json

当然你也可以不加--src-dir,不加--src-dir生成的是无src目录工程,目前nextjs默认生成的就是无src目录工程。这个根据个人需求和喜好去选择。

二、安装prettier相关依赖

javascript 复制代码
pnpm add prettier eslint-config-prettier eslint-plugin-prettier -D

创建.prettierrc文件在根目录下,内容有

javascript 复制代码
{
  "importOrder": [
    "^(react/(.*)$)|^(react$)",
    "^(next/(.*)$)|^(next$)",
    "<THIRD_PARTY_MODULES>",
    "",
    "^@/(.*)$",
    "^[./]"
  ],
  "importOrderParserPlugins": ["typescript", "jsx", "decorators-legacy"],
  "plugins": [
    "@ianvs/prettier-plugin-sort-imports",
    "prettier-plugin-sort-json"
  ],
  "printWidth": 80,
  "semi": true,
  "singleAttributePerLine": true,
  "singleQuote": true,
  "tabWidth": 2,

  "trailingComma": "es5"
}

这个prettier配置文件里面引用了这两个依赖@ianvs/prettier-plugin-sort-imports、prettier-plugin-sort-json,因此得去安装:

javascript 复制代码
pnpm add @ianvs/prettier-plugin-sort-imports prettier-plugin-sort-json eslint-plugin-unused-imports -D

三、修改或创建eslint配置文件

javascript 复制代码
import nextVitals from 'eslint-config-next/core-web-vitals';
import nextTs from 'eslint-config-next/typescript';
import prettierConfig from 'eslint-config-prettier';
import prettierPlugin from 'eslint-plugin-prettier';
import unusedImports from 'eslint-plugin-unused-imports';
import { defineConfig, globalIgnores } from 'eslint/config';

const eslintConfig = defineConfig([
  ...nextVitals,
  ...nextTs,

  globalIgnores(['.next/**', 'out/**', 'build/**', 'next-env.d.ts']),
  prettierConfig,
  {
    plugins: {
      prettier: prettierPlugin,
      'unused-imports': unusedImports,
    },
    rules: {
      '@typescript-eslint/no-unused-vars': 'off',
      'no-unused-vars': 'off',
      'unused-imports/no-unused-imports': 'error',
      'unused-imports/no-unused-vars': [
        'warn',
        {
          vars: 'all',
          varsIgnorePattern: '^_',
          args: 'after-used',
          argsIgnorePattern: '^_',
        },
      ],
      'prettier/prettier': 'error',
    },
  },
]);

export default eslintConfig;

四、修改package.json命令行

javascript 复制代码
"scripts": {
  "lint": "eslint .",
  "format": "prettier --write ."
}

以上步骤就完成了nextjs的eslint、prettier配置

第五步:编辑器集成(VS Code 党必看)

在 VS Code 或者cursor中安装插件:

  • ESLint ✔️
  • Prettier - Code formatter ✔️

然后再vscode或者cursor的setting.json 当中配置如下:

复制代码
{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode"
}

当然了你也可以在nextjs项目下面创建,到 .vscode/settings.json,进行以上配置

相关推荐
福兮说1 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理2 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
小呆呆6663 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
Dovis(誓平步青云)3 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan4 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_4 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒4 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
广州华水科技5 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端
yivifu5 小时前
中文古籍电子书注释集成
前端·javascript·python·beautifulsoup·epub
默_笙6 小时前
🛴 从散件到整机:DeepAgents 与 Agent 身上预留的那些"插槽"(前置介绍)
前端·javascript