news 2026/6/26 7:24:44

React + Ts + Vite加入工程化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
React + Ts + Vite加入工程化

已加入的工程化能力

类别内容作用

代码格式

Prettier +format/format:check

统一代码风格

代码质量

ESLint + eslint-config-prettier

避免 ESLint 与 Prettier 冲突

单元测试

Vitest + Testing Library

src/api/kanban.test.ts示例

Git 钩子

Husky + lint-staged

commit 前自动 format + lint

环境变量

.env.example

文档化配置项

编辑器

.editorconfig

统一缩进、换行

PR 规范

.github/pull_request_template.md

PR 自检清单

CI/CD 增强

CI / Deploy 增加format:checktest

合并前多一道门禁

新增 npm scripts

pnpm format # 格式化全部代码

pnpm format:check # 检查格式(CI 用)

pnpm typecheck # 仅类型检查

pnpm test # 跑单元测试

pnpm test:watch # 监听模式

pnpm test:coverage # 覆盖率报告

本地启用 Git 钩子

push 后其他人 clone 下来执行:

pnpm install # 自动跑 husky prepare,注册 pre-commit

之后每次git commit会自动对暂存文件执行 Prettier + ESLint。

当前工程化架构

后续可继续加强(按需)

  1. E2E 测试:Playwright 测拖拽、创建任务
  2. Commit 规范:commitlint + conventional commits
  3. API 校验:用 Zod 校验请求/响应(项目里已有 zod)
  4. 错误监控:Sentry 接入线上
  5. Branch Protection:main必须 CI 通过才能合并
  6. Dependabot:自动更新依赖

一、都增加或修改了什么?

1. 代码质量与格式

文件/配置改动

prettier+.prettierrc/.prettierignore

统一代码格式

eslint.config.js

接入eslint-config-prettier,避免与 Prettier 规则冲突

全项目源码

跑过一次pnpm format统一风格

2. 测试

文件改动

vitest+vite.config.tstest配置

单元测试框架

src/test/setup.ts

测试环境初始化

src/api/kanban.test.ts

API 层示例测试(2 个用例)

3. Git 工作流

文件改动

husky+.husky/pre-commit

commit 前自动检查

lint-stagedpackage.json

只检查暂存文件,加快速度

prepare: husky

pnpm install时自动注册钩子

4. 规范与文档

文件改动

.editorconfig

编辑器缩进、换行一致

.env.example

环境变量说明

.github/pull_request_template.md

PR 描述模板

.gitignore

忽略coverage.env

5. 包管理规范

文件改动

package.json

packageManagerengines.node >= 20

新增 scripts

typecheckformattesttest:coverage

6. CI/CD(工程化的一部分,之前已有)

文件作用

.github/workflows/ci.yml

PR/push 时:format → lint → test → build

.github/workflows/deploy.yml

合并 main 后部署 GitHub Pages

CI 在工程化阶段的新增项:format:checktest(原先只有 lint + build)。


二、为什么需要工程化?

你这个看板项目已经具备:

  • 前端 + 后端 API
  • 拖拽、持久化
  • CI/CD 自动部署

继续单人开发还勉强够用,但会遇到:

场景没有工程化时

改完 push

可能线上 build 失败才发现

两人协作

缩进、引号、风格不一致,diff 噪音大

重构 API

不知道有没有改坏,只能手动点页面

新人加入

不知道用什么 Node、怎么配环境

合 PR

缺少统一检查,容易合入有问题的代码

工程化的目标:把「靠人记、靠手测」变成「工具自动兜底」。


三、解决了什么问题?

工程化前工程化后手动测pushCI 可能失败线上出问题pre-commit 本地拦截pushCI 全量检查通过才合并/部署

问题怎么解决

格式不统一

Prettier +format:check

低级代码错误

ESLint

核心逻辑被改坏

Vitest(目前覆盖 API 层)

坏代码进仓库

Husky pre-commit

坏代码进 main

CI 门禁

环境不一致

.env.exampleenginespackageManager

PR 信息缺失

PR 模板

部署前未验证

Deploy workflow 同样跑 test/lint


四、引入了新问题吗?

有,主要是成本和复杂度,属于正常 trade-off:

新问题说明应对

commit 变慢

pre-commit 要跑 format + lint

lint-staged 只检查暂存文件;紧急时可--no-verify(尽量少用)

CI 更严格

format/test 失败会拦合并

本地先跑pnpm format:check && pnpm test

Prettier 大 diff

首次 format 改了很多文件

已做过一次;之后 diff 会小很多

测试覆盖不足

只有 API 2 个用例,拖拽/UI 未测

后续补组件测试、E2E(Playwright)

Husky 需初始化

新 clone 要pnpm install才注册钩子

写在 README 或 onboarding 里

维护成本

多一套依赖要升级

可用 Dependabot 自动提 PR

规则可能过严

例如 shadcn 组件 ESLint 例外

已在eslint.config.js里单独处理

没有解决、也不在本轮工程化范围内的:

  • 线上 API 仍要单独部署(Render 等),GitHub Pages 不能跑 Node
  • E2E、性能监控、错误上报(Sentry)尚未接入
  • commit message 规范(commitlint)未加

五、一句话总结

维度内容

改了什么

格式、测试、Git 钩子、环境文档、CI 增强

为什么

从「个人 demo」升级到「可协作、可持续交付」

解决什么

风格乱、低级错误、坏代码上线、环境不一致

新代价

流程更严、学习成本略增、测试覆盖还需继续补

当前阶段是轻量工程化:适合个人项目和小团队协作。若团队变大,可再补 E2E、commitlint、Branch Protection、Sentry 等。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 7:23:20

中小品牌怎么做海外营销?低成本达人营销策略

不少中小出海品牌陷入固有认知,认为海外红人营销是头部企业专属,高额坑位费、服务费让小卖家望而却步。但行业数据显示,纳米、微型达人互动率远超百万粉大博主,依靠矩阵化铺量、轻量化合作模式,中小品牌无需大额预算&a…

作者头像 李华
网站建设 2026/6/26 7:22:58

深度评测 | 从剂型创新到材料突破:2026年肛肠外科护理产品的技术迭代与选购逻辑

前言:被忽视的“难言之隐”与消费升级下的真实需求在现代生活节奏加快、饮食结构改变以及久坐办公常态化的背景下,肛肠疾病已成为影响国人生活质量的高发慢性健康问题。据中华中医药学会肛肠分会相关流行病学调查数据显示,国内痔疮患病总人数…

作者头像 李华
网站建设 2026/6/26 7:22:03

About-SwiftUI:学 SwiftUI,这一个仓库够了

文章目录About-SwiftUI:学 SwiftUI,这一个仓库够了1、为什么需要这个仓库2、里面有什么3、怎么用4、项目的由来5、值不值得关注About-SwiftUI:学 SwiftUI,这一个仓库够了 这个仓库在 GitHub 上拿了 7,078 Star。 它不写代码&…

作者头像 李华
网站建设 2026/6/26 7:21:54

收藏!500+AI Agent实战项目,小白也能快速上手大模型应用

本文介绍了GitHub上ashishpatel26维护的500-AI-Agents-Projects仓库,包含500多个可运行的开源AI Agent项目,覆盖18行业。仓库按行业和框架分类,每个项目都可直接克隆运行。文章精选医疗、金融、教育、法律、网络安全、制造等行业的典型Agent案…

作者头像 李华
网站建设 2026/6/26 7:21:26

客户看到的不是企业本身,而是企业表达出来的样子

很多企业在数字化建设过程中,会投入大量资源提升自身能力。优化产品。升级技术。完善服务。培养团队。这些工作都是企业发展的基础。但一个经常被忽略的问题是:市场是否真正理解这些能力?常州智熊网络技术有限公司在研究AI搜索趋势时发现&…

作者头像 李华
网站建设 2026/6/26 7:20:23

小程序计算机毕设之移动端驱动的SpringBoot物联网菇房环境数据管理系统设计与实现 食用菌栽培专用物联网菇房环境监测小程序系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华