版本编号与发布
PlayCanvas Engine 遵循语义化版本。每次发布的版本号均采用 major.minor.patch 格式,例如 2.23.3,分别表示主版本号、次版本号和补丁版本号。
important
极少数情况下,次版本也会包含破坏性变更。例如,2.5.0 改变了 ShaderMaterial 处理伽马校正、色调映射和雾效的方式。我们会尽量避免这种情况,任何此类变更都会列在引擎迁移中。
选择接受哪些更新
运行 npm install playcanvas 时,npm 会在 package.json 中以脱字符(^)范围记录引擎版本,例如 "playcanvas": "^2.23.3"。该范围接受后续所有 2.x 版本,因此更新依赖可能会升级到新的次版本。若希望限制更新范围,可以采用其他版本表达式安装:
| 接受的更新 | 命令 | package.json 中的条目 |
|---|---|---|
| 次版本和补丁版本(npm 默认行为) | npm install playcanvas | "^2.23.3" |
| 仅补丁版本 | npm install playcanvas@~2.23.3 | "~2.23.3" |
| 不接受更新(固定版本) | npm install playcanvas --save-exact | "2.23.3" |
版本范围决定了 npm update 可以升级到哪个版本,以及没有锁文件时全新安装会解析到哪个版本。package-lock.json 仍会记录实际安装的精确版本,npm ci 则安装该版本。上述范围都不会选择 beta、preview 或 alpha 构建;要安装它们,需要明确指定相应标签。
如果通过 CDN 加载引擎,请在 URL 中指定版本,例如 https://cdn.jsdelivr.net/npm/[email protected]/+esm。未指定版本的 URL 始终加载最新发布版。
发布类型
| 发布类型 | 示例 | 内容 |
|---|---|---|
| 补丁版本 | 2.23.2 → 2.23.3 | 仅修复问题,不更改 API。 |
| 次版本 | 2.22.6 → 2.23.0 | 新功能。现有 API 可能被弃用,但仍然可用;调试版引擎会在使用时记录警告。 |
| 主版本 | 1.x → 2.0.0 | 较大的 API 变更。Engine v2 移除了 WebGL 1 支持、旧版脚本系统及大量已弃用 API。 |
npm 标签
除稳定版外,引擎也会向 npm 发布预发行构建。每种构建均有专属标签:
| 标签 | 版本格式 | 内容 |
|---|---|---|
latest | X.Y.Z | 当前稳定版。npm install playcanvas 会安装此版本。 |
beta | X.Y.0-beta.N | 从 main 分支构建,面向下一个次版本。如果 main 自上次 beta 后有变化,会在每天 UTC 02:00 构建。包含已合并但尚未完成发布测试的功能。 |
preview | X.Y.Z-preview.N | 次版本或补丁版本在 release-X.Y 分支准备发布时,于正式发布前提供的版本。近期正式版本通常在几分钟后即发布,因此该标签经常指向比 latest 更旧的版本。 |
alpha | X.Y.Z-alpha.PR.N | 偶尔针对某个拉取请求生成的构建,便于在合并前测试,例如在移动设备上验证。不应在项目中使用。 |
lts | 1.Y.Z | 最新的 Engine v1 版本。Engine v1 仅接收关键修复。参阅引擎兼容性。 |
安装带标签的构建时,在包名后加上标签:
npm install playcanvas@beta
查看各个标签当前指向的版本:
npm view playcanvas dist-tags
编辑器项目
编辑器项目不通过 npm 安装引擎,而是在编辑器的引擎设置中,选择启动、发布和下载项目时使用的引擎版本。