向本仓(平台与 SDK)提交改动时看这篇。业务模块在独立作者仓发布,不经本仓 changesets。
更细约定见 代码约定;脚本见 工具脚本;模块发包见 发布你的模块。
- Node.js ≥ 22.13
- pnpm workspace(
pnpm-workspace.yaml,主仓推荐)或 npm workspaces;本地@sfmc-bds/*用^<version>,禁止workspace:* - 可选:Python 3.12 +
pip install -r docs/requirements.txt
pnpm install && pnpm run build && pnpm run verify
npm install && npm run build --workspaces --if-present && npm run verify下文 pnpm / npm 等价(单包 filter 写法见第二列)。
| pnpm | npm | 说明 |
|---|---|---|
pnpm run build |
npm run build --workspaces --if-present |
各 workspace build |
pnpm run typecheck |
npm run typecheck |
各 workspace typecheck |
pnpm run lint |
npm run lint |
build eslint-plugin 后 eslint . |
pnpm start |
npm start |
CLI |
单包:pnpm --filter @sfmc-bds/sdk run build / npm run build -w @sfmc-bds/sdk。
| pnpm | npm | 说明 |
|---|---|---|
pnpm run verify |
npm run verify |
平台集成自检 |
pnpm run docs -- api|serve|build
npm run docs -- api|serve|buildpnpm run syncpack:fix
npm run syncpack:fix
pnpm exec syncpack format --check
npx syncpack format --check| pnpm | npm | 说明 |
|---|---|---|
pnpm run changeset |
npm run changeset |
添加 changeset;push main 后 CI 开 Version PR |
node packages/tools/pack-verify.mjs |
同上 | 可选:pnpm pack / npm pack 冒烟 |
日常发版:合并 Version PR 即可,无需本地 prerelease / release。当前 beta-only。模块作者发包见 发布你的模块。
- 业务模块只依赖
@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 |