Appearance
Monorepo 协作
核心配置文件
| 文件 | 作用 |
|---|---|
pnpm-workspace.yaml | 声明 workspace 包路径 |
turbo.json | 构建依赖图:build 时先执行依赖包的 ^build |
根 package.json | 编排脚本,不含业务代码 |
.npmrc | 镜像、Electron hoisted、postinstall 策略 |
workspace 依赖
子包通过 workspace:^ 互相引用:
json
"@xichen-full-stack/types": "workspace:^"pnpm 会链接到 packages/shared/types,改源码后 consumer 立即感知(TS 包需 build 出 dist)。
Turbo pipeline
json
{
"build": { "dependsOn": ["^build"], "outputs": ["dist/**"] },
"dev": { "cache": false, "persistent": true }
}执行 pnpm build 时,会先 build 所有被依赖的 shared 包,再 build web/desktop 等。
包发现范围
yaml
packages:
- "packages/*"
- "packages/shared/*"包含:web、desktop、mobile、server-java、server-python、shared 下所有子包。
Java / Python 与 Turbo
后端使用 Maven / pip,通常 不 纳入 Turbo build pipeline,独立启动:
bash
pnpm --filter @xichen-full-stack/server-java devElectron 特殊配置
.npmrc 中:
node-linker=hoisted— electron-builder 在 monorepo 下需要扁平 node_modulesELECTRON_MIRROR— 国内下载 Electron 二进制allowBuilds.electron: true— 允许 electron postinstall