搜索 K
主题
给 TypeScript repo 接 dependency-cruiser,把每个 package 逼成深模块:子目录全私有、只能从包根 entry point 进、测试也只能走 entry point,最后实测规则真的咬人。
/setup-ts-deep-modulessrc/ 用 src/packages 否则 packages)、已有 .dependency-cruiser.* 就合并不覆盖。.cjs 配置落实四条 error 规则:entry-point 边界、包内自由、测试走 entry point、无环。lint:boundaries 脚本(depcruise <packages-root>)并折进总的 check 命令;不动 tsconfig、不加 alias。<packages-root>/example/ 模板包:index.ts 入口、lib/impl.ts 内部件、tests/example.test.ts 只测入口。tests-through-entrypoints)→ 还原再过。CLAUDE.md/AGENTS.md 加一行 context pointer。lint:boundaries 脚本、example 模板包、packages README 约定。$1 反向引用是让包内互通、外人进不来的关键,别拍平成逐包规则。