React18 + Vite + TS + Eslint + Husky 从0到1搭建项目

该文介绍了如何在Vite项目中设置代码规范,包括使用npm创建项目,集成ESLint和Prettier进行代码风格检查和自动格式化,通过husky和lint-staged在git提交前进行代码校验,以及添加stylelint来规范CSS代码。

项目创建

npm create vite@latest

在这里插入图片描述

 cd vite-react
  npm install
  npm run dev

执行完以上命令

目录结构

在这里插入图片描述

启动后界面展示

在这里插入图片描述

代码规范

添加Eslint

npm i eslint -D
npx eslint --init

执行 npx eslint --init 自动生成 .eslintrc.cjs, 而不是 自动生成 .eslintrc.js

在这里插入图片描述执行

解决:执行 npx eslint --init 自动生成 .eslintrc.cjs, 而不是 自动生成 .eslintrc.js
   1, 打开package.json 文件, 删掉  "type": "module"
   2, 删掉.eslintrc.cjs,重新执行命令

在这里插入图片描述
终端执行:

1, 查看项目中src目录下有哪些错误
pnpm exec eslint src/*    
2,修复项目中src目录下的错误
pnpm exec eslint src/* --fix

添加prettier

1,装依赖
npm i prettier eslint-config-prettier eslint-plugin-prettier -D
2,手动新建.prettierrc.js 文件
3,手动在文件里添加配置
module.exports = {
    tabWidth: 2,
    printWidth: 90,
    endOfLine: "auto",
    singleQuote: true,
    bracketSameLine: true,
}
4,在.eslintrc 中,extend中添加 "prettier" 解决 eslint 和 prettier 的冲突

git 规范

添加husky

1, 执行 npm i husky -D 安装husky
2, git init 初始化git
3,  npx husky install 启用 git hooks
4,加入 husky prepare 命令
     - 执行 npm pkg se
### 项目初始化 首先,使用 `Vite` 创建一个基于 `React` 和 `TypeScript` 的项目。可以通过以下命令完成: ```bash npm create vite@latest my-app --template react-ts ``` 进入项目目录并安装依赖: ```bash cd my-app npm install ``` 启动项目: ```bash npm run dev ``` ### 集成 ESLint 为了使用 `ESLint` 进行代码规范,首先需要安装相关依赖: ```bash npm init @eslint/config ``` 在交互式命令行中,选择以下配置: - **To check syntax, find problems, and enforce code style** - **JavaScript modules (import/export)** - **React** - **Yes** for using TypeScript - **Browser** - **Use a popular style guide** - **Airbnb** - **JSON** 配置格式 安装 `ESLint` 插件和配置: ```bash npm install eslint-plugin-react @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-config-airbnb eslint-config-prettier eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react-hooks --save-dev ``` 在项目根目录下创建 `.eslintrc.json` 文件,并添加以下配置: ```json { "root": true, "env": { "browser": true, "es2021": true, "node": true }, "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "prettier" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": "latest", "sourceType": "module" }, "plugins": ["react", "@typescript-eslint", "prettier"], "rules": {} } ``` ### 集成 Prettier 安装 `Prettier` 及其插件: ```bash npm install --save-dev prettier eslint-config-prettier eslint-plugin-prettier ``` 创建 `.prettierrc` 文件,并添加以下配置: ```json { "printWidth": 80, "tabWidth": 2, "useTabs": false, "semi": false, "singleQuote": true, "trailingComma": "es5", "bracketSpacing": true, "arrowParens": "always", "endOfLine": "auto" } ``` 同时,在 `.eslintrc.json` 中添加 `prettier` 插件以确保 `ESLint` 与 `Prettier` 协作无冲突: ```json { "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended" ] } ``` ### 集成 Husky 安装 `Husky` 以支持 Git Hook: ```bash npm install husky --save-dev ``` 启用 Git Hook: ```bash npx husky install ``` 添加 `pre-commit` Hook 以在提交代码前运行 `lint-staged`: ```bash npx husky add .husky/pre-commit "npx lint-staged" ``` ### 集成 Commitlint 安装 `commitlint` 以规范提交信息: ```bash npm install --save-dev @commitlint/config-conventional @commitlint/cli ``` 创建 `commitlint.config.js` 文件,并添加以下配置: ```js module.exports = { extends: ['@commitlint/config-conventional'] }; ``` 添加 `prepare-commit-msg` Hook 以确保提交信息符合规范: ```bash npx husky add .husky/prepare-commit-msg "npx commitlint --edit" ``` ### 集成 Lint-staged 安装 `lint-staged` 以确保只对修改的文件进行检查: ```bash npm install --save-dev lint-staged ``` 在 `package.json` 中添加 `lint-staged` 配置: ```json { "lint-staged": { "src/**/*.{ts,tsx}": ["eslint --fix", "prettier --write"], "src/**/*.{js,jsx}": ["eslint --fix", "prettier --write"], "src/**/*.css": ["stylelint --fix", "prettier --write"] } } ``` ### 配置 Stylelint(可选) 如果需要对 CSS 文件进行格式化,可以安装 `stylelint`: ```bash npm install --save-dev stylelint stylelint-config-standard stylelint-prettier ``` 创建 `.stylelintrc` 文件,并添加以下配置: ```json { "extends": ["stylelint-config-standard", "stylelint-prettier/recommended"] } ``` ### 总结 通过以上步骤,已经成功搭建了一个基于 `Vite + React` 的项目,并集成了 `ESLint`、`Prettier`、`Husky`、`Commitlint` 和 `Lint-staged` 来规范代码风格和 Git 提交流程。这些工具的组合可以有效提升团队协作效率,并确保代码质量[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值