向本仓(平台与 SDK)提交改动时看这篇。业务模块在独立作者仓发布,不经本仓 changesets。
更细约定见 代码约定;脚本见 工具脚本;模块发包见 发布你的模块。
- Node.js ≥ 22.13
- pnpm workspace(
pnpm-workspace.yaml);本地@sfmc-bds/*用^<version>,禁止workspace:* - 可选:Python 3.12 +
pip install -r docs/requirements.txt
pnpm install && pnpm run build && pnpm run verify以下命令统一使用 pnpm。
| 命令 | 说明 |
|---|---|
pnpm run build |
各 workspace build |
pnpm run typecheck |
各 workspace typecheck |
pnpm run lint |
build eslint-plugin 后 eslint . |
pnpm start |
CLI |
单包:pnpm --filter @sfmc-bds/sdk run build。
| 命令 | 说明 |
|---|---|
pnpm run verify |
平台集成自检 |
pnpm run docs api
pnpm run docs serve
pnpm run docs buildpnpm run syncpack:fix
pnpm exec syncpack format --check| 命令 | 说明 |
|---|---|
pnpm run changeset |
添加 changeset;push main 后 CI 开 Version PR |
node packages/tools/pack-verify.mjs |
检查发布包内容 |
日常发版:合并 Version PR 即可,无需本地 prerelease / release。正式版使用 npm latest;预发布需单独启用 Changesets pre mode。模块作者发包见 发布你的模块。
- 业务模块只依赖
@sfmc-bds/sdk+@minecraft/*;跨模块用 manifest + service - 不直连 db-server、不 import 其它模块源码、不读写对方私有表
- 配置 JSON、SAPI 启动缓存;改配置后重启 BDS
- 消息用
Msg.*,不用player.sendMessage() - 包内 build/typecheck 走 monorepo
@sfmc-bds/toolsworkspace bin,勿写随深度变化的../../../tools - 不提交
configs/、data/、密钥、本机.sfmc/ - 注释中文 UTF-8;审查关注 DRY / OCP / DIP / LSP / 最少知识
| 文档 | 内容 |
|---|---|
| 架构 | 分层 |
| 平台开发 | SDK / db / CLI |
| ESLint 约定 | 规则 |
| 文档站维护 | Rspress / TypeDoc |