mcpField
M
module-by-module-migration

module-by-module-migration

github.com/marius-townhouse开发647 次安装39 周前更新
代码仓库

关于 module-by-module-migration

module-by-module-migration 是面向 JavaScript 转 TypeScript 项目的迁移规划技能,适用于大型代码库与团队。它建议沿依赖图从叶子模块向上逐个转换,使依赖先完成类型化。

主要功能

  1. 01按依赖图确定迁移顺序
  2. 02从无依赖的叶子模块开始
  3. 03逐模块转换 JavaScript
  4. 04先类型化依赖再处理上层模块

适用场景

  1. 01规划大型代码库的 TypeScript 迁移
  2. 02安排工具函数与服务的转换次序
  3. 03协调团队分阶段迁移 JavaScript

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/marius-townhouse/effective-typescript-skills --skill module-by-module-migration

安装后在 Claude Code 中输入/module-by-module-migration确认已加载。

详细介绍

沿依赖图自底向上逐个转换模块

概述

将 JavaScript 迁移到 TypeScript 时,请遵循依赖图:从叶子模块(没有依赖的模块)开始,逐步向上迁移。这样可以确保转换某个模块时,它的所有依赖都已添加类型。这能最大限度地减少类型错误,让迁移更易于管理。

何时使用此技能

  • 将大型代码库迁移到 TypeScript
  • 将 JavaScript 转换为 TypeScript
  • 在迁移过程中管理依赖
  • 规划迁移顺序
  • 团队采用 TypeScript

铁律

从叶子模块(没有依赖的模块)开始迁移,并沿依赖图逐步向上。这能确保依赖项在其上游模块之前完成类型化。

迁移顺序

Leaf modules (no dependencies):
  - utils.js → utils.ts
  - constants.js → constants.ts
  - helpers.js → helpers.ts

Middle modules (depend on leaves):
  - api.js → api.ts
  - components.js → components.ts

Entry points (most dependencies):
  - app.js → app.ts
  - index.js → index.ts

示例

# 1. Convert utilities first (no dependencies)
# utils.js → utils.ts
# constants.js → constants.ts

# 2. Then services (depend on utilities)
# api.js → api.ts
# store.js → store.ts

# 3. Finally entry points (depend on everything)
# app.js → app.ts
# main.js → main.ts

参考资料

  • Dan Vanderkam 著《Effective TypeScript》第 2 版
  • 条目 82:沿依赖图自底向上逐个转换模块

评论

支持 Markdown