cajonzero 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -16
- package/dist/bin/cj0.js +14677 -165
- package/dist/{config-YtU8BYQM.d.ts → config-B32NDXlr.d.ts} +1 -1
- package/dist/core.d.ts +15 -7
- package/dist/core.js +328 -196
- package/dist/index.d.ts +5 -5
- package/dist/index.js +193 -89
- package/dist/{providers-Dh-umPQ6.d.ts → providers-BwJKzGkd.d.ts} +20 -17
- package/dist/scaffold.d.ts +124 -2
- package/dist/scaffold.js +579 -91
- package/dist/serve.d.ts +2 -2
- package/dist/serve.js +334 -230
- package/dist/ui/assets/index-Bhv7LV8L.css +2 -0
- package/dist/ui/assets/index-CNHWg0_t.js +4404 -0
- package/dist/ui/assets/{main-DrPj1s7t.js → main-DTcEV4JE.js} +20 -20
- package/dist/ui/index.html +2 -2
- package/package.json +7 -6
- package/dist/bin/cj0.js.map +0 -1
- package/dist/core.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/scaffold.js.map +0 -1
- package/dist/serve.js.map +0 -1
- package/dist/ui/assets/index-8g0ogAbk.js +0 -4404
- package/dist/ui/assets/index-W1HlDaw6.css +0 -2
package/README.md
CHANGED
|
@@ -10,39 +10,42 @@ npm install cajonzero
|
|
|
10
10
|
npx cj0 --help
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## 本地运行(本仓库)
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
npm install
|
|
17
17
|
npm run build # 构建大厅与管理后台
|
|
18
|
-
npm run demo #
|
|
18
|
+
npm run demo # http://127.0.0.1:8787
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
管理后台地址是 `/admin/login`,演示环境的令牌为 `cajonzero-demo-admin-token`。
|
|
21
|
+
管理后台地址 `/admin/login`,演示令牌 `cajonzero-demo-admin-token`。
|
|
23
22
|
|
|
24
|
-
##
|
|
23
|
+
## 创建项目
|
|
25
24
|
|
|
26
25
|
```bash
|
|
27
|
-
cj0 create my-server
|
|
26
|
+
npx cj0 create my-server
|
|
28
27
|
cd my-server
|
|
29
28
|
npm install
|
|
30
|
-
|
|
29
|
+
npx cj0 setup # 交互配置 ENV + KV namespace
|
|
30
|
+
npm run dev
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
## 部署
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
npx
|
|
36
|
+
npx cj0 setup # vars/密钥/KV(可自动创建 KV namespace)
|
|
37
37
|
npx wrangler secret put CAJONZERO_SESSION_SECRET # 会话签名密钥
|
|
38
38
|
npx wrangler secret put BOX_PLAY_ADMIN_TOKEN # 管理后台令牌
|
|
39
39
|
npm run deploy
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
`cj0 setup` 会把 KV namespace id 写进 `wrangler.jsonc`;如果当时没有登录
|
|
43
|
+
wrangler,也可以手动运行 `npx wrangler kv namespace create <name> --update-config --binding CAJONZERO_KV`。
|
|
44
|
+
|
|
42
45
|
## 配置地图
|
|
43
46
|
|
|
44
|
-
|
|
45
|
-
OSS/S3/CDN
|
|
47
|
+
地图文件单独上传,不随 worker 打包。把解包后的 `.boxplay` 目录上传到
|
|
48
|
+
OSS/S3/CDN(需允许 CORS),然后在 `cajonzero/maps.json` 中登记:
|
|
46
49
|
|
|
47
50
|
```json
|
|
48
51
|
{
|
|
@@ -58,17 +61,51 @@ OSS/S3/CDN,然后在 `cajonzero/maps.json` 中登记:
|
|
|
58
61
|
}
|
|
59
62
|
```
|
|
60
63
|
|
|
61
|
-
|
|
62
|
-
更新地图后请刷新 CDN 缓存,或改用带版本的路径。
|
|
64
|
+
`root` 必须以 `/` 结尾;更新地图后刷新 CDN 缓存或改用带版本的路径。
|
|
63
65
|
房间参数、地图拉取策略等配置位于 `cajonzero/config.json`。
|
|
64
66
|
|
|
67
|
+
### 预计算 seed(强烈建议)
|
|
68
|
+
|
|
69
|
+
默认情况下房间启动会沿着 `bundle.json` → manifest → 每个 blob 逐个拉取,一张真实地图
|
|
70
|
+
会产生 100+ 次子请求。Cloudflare Workers 免费版单次调用只有 50 个子请求 / 10ms CPU,
|
|
71
|
+
线上会直接起不来(本地 `wrangler dev` 不限制,所以看起来正常)。
|
|
72
|
+
|
|
73
|
+
`cj0 worker build-seed` 在本地把每张图解析一次,把单文件 seed pack 写进 **worker 的静态资源目录**
|
|
74
|
+
(`dist/ui/seed/<slug>.json.gz`),随 `wrangler deploy` 一起上传,不需要改 CDN、不写 KV/R2:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
cj0 worker build-seed # 所有地图;也可只传 slug
|
|
78
|
+
# seeded race: 155 bodies, 64 voxel chunks, 52 meshes -> dist/ui/seed/race.json.gz (38.2 KB)
|
|
79
|
+
# seed assets: dist/ui/seed (served at /seed/<slug>.json[.gz])
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
之后房间启动变成 **1 次 assets 读取**,不再遍历项目图。生成的部署项目脚本已经包含这一步:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
"dev": "cj0 worker prepare && wrangler dev",
|
|
86
|
+
"deploy": "cj0 worker prepare && cj0 worker build-seed --force && wrangler deploy"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`cj0 worker prepare` 会保留 `seed/` 目录;`deploy` 强制重建,避免地图内容更新但 `version`
|
|
90
|
+
没变时继续用旧 pack(`maps.json` 的 `version` / `etag` / `root` 变化也会触发重建)。
|
|
91
|
+
|
|
92
|
+
如果你更想把 pack 放在地图 CDN 上(不改 worker),也可以用:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
cj0 maps pack race # 生成 race.seed.json.gz,手动上传到 <root>/seed.json.gz
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
两种来源都会自动识别,缺省时回退到逐文件解析。
|
|
99
|
+
|
|
65
100
|
## 常用命令
|
|
66
101
|
|
|
67
102
|
```bash
|
|
68
|
-
cj0 serve [--port <port>] [--host <host>] # 本地启动
|
|
69
103
|
cj0 create <folder> # 生成部署项目
|
|
104
|
+
cj0 setup [--config <file>] # 配置 ENV + KV namespace(id)
|
|
105
|
+
cj0 maps pack <slug> # 预计算 seed 文件(上传到 CDN)
|
|
106
|
+
cj0 worker build-seed [slug...] # 预计算 seed 并写进 worker assets
|
|
107
|
+
cj0 serve [--port <port>] [--host <host>] # 本地启动
|
|
108
|
+
cj0 worker prepare [--config <file>] # 把包内 UI 同步到 assets.directory
|
|
70
109
|
npm test # 运行测试
|
|
71
110
|
npm run ci:gates # 完整检查(类型/测试/构建)
|
|
72
111
|
```
|
|
73
|
-
|
|
74
|
-
详细说明见 [`docs/`](./docs/)。
|