name: fast-md5-web-project-structure description: "fast-md5-web 项目结构与模块地图。用于定位代码、理解 TypeScript 库入口与 Worker 协作、Rust WASM 编译链路、example/test-fast-md5 测试应用边界、选择正确 package.json 与脚本目标,或在目录迁移后同步路径映射时。"
fast-md5-web 项目结构技能
快速开始
- 先读
references/project-structure.md获取入口、模块边界与关键链路映射。 - 需要选型时读
references/dependencies.md,优先复用现有依赖与封装。 - 用户提到“目录变更/路径失效/找不到文件/不确定改哪个模块”时,先执行
rg --files src wasm example/test-fast-md5 __test scripts docs做路径自检。
导航原则
- 先判断模块边界:
src(公共 API 与线程池)、wasm(Rust 计算核心)、example/test-fast-md5(示例与 e2e)、__test(单元测试)、scripts(安装与工具脚本)。 - 先找入口再追深模块:
src/index.ts、src/md5-worker.ts、wasm/src/lib.rs、example/test-fast-md5/src/main.ts。 - 公共能力通过
src/index.ts暴露;Worker 只负责消息处理与 WASM 调用;Hash 算法逻辑集中在wasm/src/lib.rs。 - 构建链路优先看根目录
package.json、tsup.config.ts、wasm/Cargo.toml与example/test-fast-md5/package.json。 - 涉及大文件流式能力时,优先核对 SharedArrayBuffer 条件与
example/test-fast-md5/vite.config.ts的 COOP/COEP 配置。
执行步骤
- 判断需求属于哪个模块与哪个脚本目标(
build、test、test:unit、test:e2e、build:wasm)。 - 路径不确定时先做目录自检并确认关键入口文件存在。
- 从入口沿调用链追踪到具体模块,不在未确认目录下盲改。
- 增删依赖前先确认目标
package.json或wasm/Cargo.toml所属模块。 - 若发现目录变更,先同步更新
references/project-structure.md与references/dependencies.md再继续实现。
质量命令选择
- 根目录质量检查:
pnpm run lintpnpm run type-checkpnpm run format:check
- 构建验证(改动
src/*或wasm/*时):pnpm run build
- 示例工程快速构建验证(改动
example/test-fast-md5/*时):pnpm --dir example/test-fast-md5 run build
测试命令选择
- 根目录统一测试:
pnpm run test(Vitest + Playwright)pnpm run test:unit(Vitest)pnpm run test:e2e(Playwright)pnpm run test:hook(commit hook 专用入口)
- 大文件基线:
- 单测与 e2e 的大文件场景按
>=300MB维护,避免退化为小体积“伪大文件”验证。
- 单测与 e2e 的大文件场景按
- 示例工程专项测试:
pnpm --dir example/test-fast-md5 run test:e2e- 首次运行时先执行
pnpm --dir example/test-fast-md5 run test:e2e:install-browser
- Git commit hook 路径:
.husky/pre-commit(会执行pnpm run test:hook)
需要时加载的参考
references/project-structure.md: 目录、入口、构建链路与改动映射。references/dependencies.md: 依赖落点、用途与复用建议。