ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用Betterer渐进式开启TypeScript strict模式:@betterer/typescript遗留项目实战指南

如何用Betterer渐进式开启TypeScript strict模式:@betterer/typescript遗留项目实战指南 如何用Betterer渐进式开启TypeScript strict模式betterer/typescript遗留项目实战指南【免费下载链接】bettererbetterer makes it easier to make incremental improvements to your codebase项目地址: https://gitcode.com/gh_mirrors/be/bettererBetterer是一款开源的渐进式代码改进工具它通过只进不退的机制帮你逐文件提升代码质量。本文以遗留项目实战为主线讲解如何用betterer/typescript测试渐进式开启 TypeScript strict 模式先接受当前错误数量为基线之后每修复一点自动记录进步任何人引入新错误都会被立刻拦截——让你安全、可控地走向 100% strict 编译。为什么遗留项目不敢一键打开 strict 在老项目里直接给tsconfig.json加上strict: true通常意味着成百上千条编译错误一次性爆发CI 直接红掉团队只能忍着不用或干脆回滚。理想的路线是按文件逐步收敛。哪个文件干净了就让哪个文件进入 strict 编译哪个文件引入新错误就在提交前被拦住。这正是 Betterer 的设计目标——把一次性大爆炸式重构变成可持续的每日进步。Betterer 的只进不退机制是怎么工作的Betterer 的核心是结果文件.betterer.results它像 Jest 快照一样记录了每个测试当前的欠账✅变好了错误减少自动更新结果文件进步被永久保存❌变差了错误增加测试失败并报错阻止还新债没变化什么都不发生。你只需把结果文件提交到版本库配合预提交钩子和 CI 检查整个团队就都被约束在同一条只进不退的曲线上。三步启用 betterer/typescript strict 测试第一步一键初始化 Betterer在项目根目录运行需要 Node.js 12npx betterer/cli init它会自动安装betterer/cli、写入betterer脚本并创建测试定义文件.betterer.ts默认使用 TypeScript由 ts-node 直接执行无需手动编译。第二步定义 strict 编译测试在.betterer.ts中声明更严格编译测试把strict: true作为增量配置叠加到你现有的 tsconfig 之上// .betterer.ts import { typescript } from betterer/typescript; export default { stricter compilation: () typescript(./tsconfig.json, { strict: true, noEmit: true }).include(./src/**/*.ts) };其中.include()用来圈定范围——你可以先只覆盖核心模块之后再逐目录扩大。include/exclude/only/skip都是现成的过滤器测试文件位置见 packages/typescript/src/typescript.ts。第三步运行测试开始还债yarn betterer start # npm 用户npm run betterer start首次运行会创建.betterer.results基线此时不会报错。此后每修复一个文件的 strict 错误再运行结果文件就会自动变绿更新。把进步焊进工作流precommit 与 CI 双保险 光靠自觉不够Betterer 提供了两个守门员模式场景命令行为本地提交前betterer precommit只检查改动文件变差即拦截提交CI 流水线betterer ci结果必须与结果文件完全一致否则构建失败建议用 husky lint-staged 把precommit挂进提交流程参考 website/docs/workflow.md 的官方推荐工作流。这样改差在本地就被挡住改好在 CI 中得到确认结果文件永远真实反映代码库状态。结果变差了怎么办最快配置方法偶尔为了赶发布窗口不得不先带病上线可以强制更新结果文件yarn betterer -u⚠️ 注意强制更新等于把新欠的债也记进账本务必尽快安排时间还掉。加上--strict可关闭强制更新的提示信息。新手常见问题 FAQQ不想要 TypeScript 依赖怎么办初始化时传入.js路径npx betterer/cli init --config .betterer.js即可跳过 TypeScript 依赖。Q老项目文件太多全量跑太慢把 tsconfig 的incremental打开Betterer 会自动走增量编译缓存大幅提升速度实现见 packages/typescript/src/typescript.ts。Q多人同时改结果文件导致冲突运行betterer mergeBetterer 会帮你自动解决结果文件的合并冲突。写在最后开启 strict 模式从来不是某一天的大动作而是每一天的小进步。用betterer/typescript立好基线配上 precommit 与 CI 双保险你的遗留项目就能沿着一条可度量的曲线一路走到全量 strict 编译——而团队再也不用面对千行红色的编译错误。更多用法可查阅仓库内文档website/docs/typescript-test.md、website/docs/running-betterer.md、website/docs/betterer-and-typescript.md。【免费下载链接】bettererbetterer makes it easier to make incremental improvements to your codebase项目地址: https://gitcode.com/gh_mirrors/be/betterer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表