用途:协助把现有 Node.js 项目迁移到 Bun,先做兼容性分析再更新配置,最后验证迁移结果。适用于将 npm、pnpm、yarn 项目转换为 Bun,或审计依赖是否能运行在 Bun 上。
主要能力:检查 Bun 与 Node 版本;读取 package.json 分析依赖;识别已知不兼容的原生模块并给出替代建议(如 bcrypt 改用 bcryptjs 或 @node-rs/bcrypt、sqlite3 改用 bun:sqlite、esbuild 可考虑内置打包器);生成 BUN_MIGRATION_REPORT.md 迁移报告;更新 package.json 脚本与 engines 字段;调整 tsconfig(moduleResolution 为 bundler、types 加 bun-types、allowImportingTsExtensions、noEmit);处理 workspace/monorepo;删除旧锁文件并用 bun install 生成 bun.lockb;把 Jest 测试迁移到 bun:test 并用 bunfig.toml 配置;更新构建配置为 Bun 内置打包器;改写 CI/CD(如 oven-sh/setup-bun)并给出验证与回滚步骤。
使用方式:按工作流执行。先运行 bun --version、node --version 并查看锁文件;再分析依赖并生成报告;迁移前用 git branch -c backup-before-bun-migration 备份;更新 package.json 与 tsconfig 后执行 rm -f package-lock.json yarn.lock pnpm-lock.yaml 与 bun install;随后运行 bun run --bun tsc --noEmit、bun test、bun run dev、bun run build 验证;如需回滚可切回备份分支或用 git reset --hard。常用脚本示例:"dev": "bun run --hot src/index.ts"、"test": "bun test"。
限制:依赖兼容判断基于资料中的已知问题,实际项目仍可能遇到原生模块、ESM/CommonJS 冲突、路径别名或测试失败等具体问题,需要逐个排查。资料未提供 Bun 的收费、价格、平台支持范围与性能数据,暂未提供相关内容。