Next.js配置Eslint+Prettier+husky规范代码开发

Next.js配置代码格式化和校验

本文概括:

  1. ESLint 可以给项目加上代码校验
  2. Prettier可以格式化代码
  3. Git的钩子可以在提交时自动修复格式化

安装和配置Prettier

Next.js项目已经配置好了EsLint,可以自己加上prettier进行格式化:

官网文档链接:nextjs.org/docs/app/ap...

安装Prettier依赖:

arduino 复制代码
npm install --save-dev eslint-config-prettier

eslint.config.mjs 中加入prettier

ini 复制代码
const eslintConfig = [
    ...compat.extends("next/core-web-vitals", "next/typescript", "prettier"),
];

prettier已经可以完成代码格式化了,我们项目中一般会用tailwindCSS,所以可以顺便格式化一下tailwind的类名(下面两个按需使用)

css 复制代码
npm i -D prettier-plugin-organize-imports prettier-plugin-tailwindcss

新建一个 .prettierrc.json 来放置格式化的规则,下面会具体介绍

新建一个 .prettierignore 来放置不需要格式化的内容

格式化命令(可以放钩子里提交之前格式化一下):

perl 复制代码
# 下面的命令会直接帮你格式化
npx prettier . --write
# 下面的命令会检测,不格式化
npx prettier . --check

在IDEA编辑器中配置代码格式化,打开下面的选项:

然后可以给prettier绑定一个快捷键(我这里改成了和默认的格式化是同一个,这样就可以使用默认格式化的同时格式化代码了):

安装和配置husky

huskylint-staged 可以在 Git 提交代码时进行 ESLint 的代码校验和 prettier 的格式化

husky官网:typicode.github.io/husky/get-s...

安装依赖(husk+lint-staged):

arduino 复制代码
npm install --save-dev husky lint-staged
# 下面这个可以在package.json里设置  "prepare": "husky install" 当别人安装依赖的时候会自动执行prepare脚本
npm pkg set scripts.prepare="husky install" 

husky配置:

csharp 复制代码
npx husky init

修改 .husky/pre-commit 文件内容,放入我们需要执行的npx lint-staged

新建一个 .lintstagedrc.json文件,用来配置格式化内容,这里我只格式化src目录下的文件

css 复制代码
{
    "src/**/*.{js,jsx,ts,tsx}": ["eslint --fix"],
    "src/**/*.{js,jsx,tsx,ts,less,md,json}": ["prettier --write"]
}

现在提交代码之后就会自动进行格式化了。

相关推荐
lbb 小魔仙13 小时前
【HarmonyOS实战】React Native 表单实战:自定义 useReactHookForm 高性能验证
javascript·react native·react.js
早點睡39018 小时前
高级进阶 ReactNative for Harmony 项目鸿蒙化三方库集成实战:react-native-drag-sort
react native·react.js·harmonyos
C澒18 小时前
Vue 项目渐进式迁移 React:组件库接入与跨框架协同技术方案
前端·vue.js·react.js·架构·系统架构
发现一只大呆瓜19 小时前
虚拟列表:从定高到动态高度的 Vue 3 & React 满分实现
前端·vue.js·react.js
全栈探索者20 小时前
列表渲染不用 map,用 ForEach!—— React 开发者的鸿蒙入门指南(第 4 期)
react.js·harmonyos·arkts·foreach·列表渲染
程序员Agions21 小时前
useMemo、useCallback、React.memo,可能真的要删了
前端·react.js
NEXT0621 小时前
React Hooks 进阶:useState与useEffect的深度理解
前端·javascript·react.js
早點睡3901 天前
基础入门 React Native 鸿蒙跨平台开发:react-native-flash-message 消息提示三方库适配
react native·react.js·harmonyos
早點睡3901 天前
高级进阶 ReactNative for Harmony项目鸿蒙化三方库集成实战:react-native-image-picker(打开手机相册)
react native·react.js·harmonyos
早點睡3901 天前
基础入门 React Native 鸿蒙跨平台开发:react-native-easy-toast三方库适配
react native·react.js·harmonyos