brendadeeznuts1111/project-R-score
GitHub: brendadeeznuts1111/project-R-score
一个基于 Bun 原生的企业级 monorepo 开发生态,提供多 workspace 管理、自动化代码质量修复工具和集中化配置,解决大型多包项目的工程治理问题。
Stars: 1 | Forks: 0
# FactoryWager Enterprise Platform
**Bun 原生 monorepo** — 核心 packages 位于 `packages/` 和 `lib/`。大型应用(`factorywager`、`kimiremote`)已移至 `projects/active/`。`projects/` 中的每个项目都是独立的,拥有自己的 workspace。
## 快速开始
```
bun run install:all # isolated linker + global store (bun.sh/docs/pm/global-store)
bun run install:verify # sanity-check cache dir, links/, and no ./~ drift
bun run dev # Watch server
bun run packages:list # Browse all packages with version/registry/triage
```
## 架构
```
packages/ @factorywager/* — 8 internal packages consumed by root workspace
projects/active/factorywager/ @factorywager/registry — registry platform
projects/active/kimiremote/ Sports terminal proxy (separate workspace)
lib/ shared — shared utility code
projects/
active/ Actively developed (analysis, automation, dashboards, enterprise, etc.)
experimental/ Prototypes and sandboxes
archive/ Frozen, read-only
```
## 关键命令
| 命令 | 描述 |
|---------|-------------|
| `bun run packages:list` | 列出所有 395+ 个 packages 及其版本、registry、triage 信息 |
| `bun run packages:outdated` | 检查过时的根依赖(快速 — workspace 隔离) |
| `bun run validate:workspaces` | 验证 workspace 覆盖率 |
| `bun run lint:core` | 对 packages/、server/、config/、tools/ 运行 ESLint |
| `bun run format:core` | 对核心目录运行 Prettier |
| `bun run fix:console-log` | 批量替换 console.log → console.info |
| `bun run fix:scan-any-types` | 扫描 `any` 类型 |
| `bun run dev` | 启动 platform 服务器 |
| `bun run deployment:readiness` | 部署就绪矩阵 |
完整列表请参见 `package.json` 脚本。
## 代码质量与修复工具
反模式修复工具(在重大重构后使用):
- `bun run fix:console-log` — 批量将 `console.log()` 替换为 `console.info()`(项目规范禁止使用 `console.log`)
- `bun run fix:scan-any-types` — 扫描应使用 `unknown` 或正确类型的 `: any` 和 `as any` 用法
- `bun run fix:scan-default-exports` — 查找应转换为具名导出的 `export default` 候选项
- `bun run fix:scan-non-null-assertions` — 查找应使用安全访问模式的 `!` 断言
详情请参见 `scripts/fix-*.ts`,或查看 `scripts/fix-console-log.ts` 获取批量修复的实现。
## 共享配置
- `config/ports.ts` — 集中化的端口配置(所有服务器的默认值:DOCS_SERVER=3000, P2P_PROXY=3002, DASHBOARD=3456 等)。所有端口均可通过环境变量覆盖。
- `config/r2-env.ts` — 集中化的 R2/Cloudflare 凭证配置。在启动时验证必需的环境变量。
- 所有部署脚本(`scripts/deploy/*`)均需要环境变量:`CLOUDFLARE_API_TOKEN`, `R2_ACCOUNT_ID`, `WIKI_DEPLOY_PATH`, `R2_BUCKET_NAME`。
- CORS:设置 `CORS_ALLOWED_ORIGINS`(逗号分隔)以限制来源。留空 = 允许全部。
- 服务器绑定:设置 `SERVER_HOST` 环境变量(默认为 `localhost`)。
## 项目策略
- 导入边界和允许的 package 根目录:`docs/IMPORT_BOUNDARIES.md`
- 根目录组织:参见 `STRUCTURE.md` 和 `ROOT_CLEANUP_SUMMARY.md`
- Workspace 维护:`bun run validate:workspaces`(验证所有 packages 是否被根 workspaces 覆盖;`check:workspaces` 是已废弃的别名)
- **代码规范**(由 eslint 强制执行):
- **禁止 `console.log`** — 使用 `console.info`、`console.warn` 或 `console.error`
- **禁止 `any` 类型** — 结合 type guards 使用 `unknown`,或定义正确的接口
- **禁止 default exports** — 使用具名导出以获得更好的 tree-shaking 和 IDE 支持
- **禁止 non-null 断言(`!`)** — 使用带有默认值的可选链
- **禁止空的 catch 块** — 必须始终处理或重新抛出错误
- **禁止硬编码 secrets** — 通过 `config/ports.ts` 或 `config/r2-env.ts` 使用环境变量
- Monorepo 工具:使用 `--filter` 模式以及 `build:affected` / `test:affected` 进行高效开发
标签:Bun, SOC Prime, TypeScript, 企业级平台, 安全插件, 开发工具, 性能优化, 检测绕过, 网络调试, 自动化, 自动化攻击