@dcl/asset-packs

中文文档
2.26.1发布于 2026/11/10ISCTypeScriptCommonJS构建来源已验证近 30 天下载 1.2万

分散式资产包 -- -- 为分散式场景收集3D资产

中文使用文档
文档目录13 节
  1. 目录
  2. 概览
  3. 快速启动
  4. 使用您的场景中的资产包
  5. 发展的先决条件
  6. 分发
  7. 生产
  8. 发展
  9. 部署
  10. 地方发展
  11. 测试检查员的新资产
  12. 解决问题
  13. 相关的结构决定

资产包

npm version License: ISC CI Status

目录

概览

资产储存库是Decentrand生态系统的一个基本组成部分,是默认物品和资产的中央储存和分配系统。 它管理和分发:

  • 资产包: 3D 资产按主题( cyberpunk, s蒸汽punk, 起源地城市) 排列的解析集合
  • 静态项目: 有纹理和材料的基本三维模型
  • 智能项目: 具有可编程行为和配置的交互式项目

部署后,所有资产被散开并上载到下面的一桶S3 contents/:hashNpm 软件包 @dcl/asset-packs 现发布内容包括:

  • A 类 catalog.json 拥有所有资产包的数据和内容散列
  • A 类 bin/index.js 智能项目功能所需的运行时间

资产可通过 builder-items.decentraland.* 通过Cloudflare.

快速启动

使用您的场景中的资产包

在您的 Decentrand SDK7 场景中安装软件包 :

npm install @dcl/asset-packs

在您的场景中导入并使用资产包 :

import { readGltfLocator } from '@dcl/asset-packs'

// Use an asset from the catalog
const assetId = 'some-asset-id'
const gltfSrc = readGltfLocator(assetId)

// Use in your scene
engine.addEntity({
  transform: Transform.create(),
  gltfContainer: GltfContainer.create({ src: gltfSrc })
})

发展的先决条件

  • 节点.js 22.x或更高
  • 无 (来与节点.js)
  • 夹克 (用于运行本地内容服务器)
  • @dcl/sdk-命令 全球或当地安装

分发

生产

  • 无 : @dcl/asset-packs@latest
  • cdn: (中文(简体) ) https://builder-items.decentraland.org/contents/:hash

发展

  • 无 : @dcl/asset-packs@next
  • cdn: (中文(简体) ) https://builder-items.decentraland.zone/contents/:hash

部署

生产部署:

  • 触发符 : main 分支
  • npm: 发布 @dcl/asset-packs@latest
  • CDN: 上传资产到 https://builder-items.decentraland.org

发展部署:

  • 触发者: 手动注释 /upload-assets (仅限成员)
  • 无 : 通过 S3 测试包可用于 PR 测试
  • CDN: 上传资产到 https://builder-items.decentraland.zone

说明:所有资产均按内容处理(hashed),确保不可更改性并正确缓存.

地方发展

您可以在本地开发此repo, 并在 Web 编辑器内进行测试 :

到你的机器里去 做这个:

  1. 运行 npm run start 以监视更改并启动 SDK7 dev 服务器(在端口上) 8001 (默认情况下).
  2. 在一个新的终端上,运行 docker-compose up 启动本地内容服务器 http://localhost:9000/asset-packs
  3. 在一个新的终端上,运行 npm run upload 上传所有资产到本地内容服务器(复制 .env.example 输入 .env 如果你以前没有这样做.
  4. 复制路径到 bin/index.js 在这种回放中( 比如 /Users/my-user/path/to/creators-hub/packages/asset-packs/bin/index.js) (中文(简体) ).

转到 packages/inspector 在这个单曲中,并做到这一点:

  1. 运行 npm start 启动本地 dev 服务器。 它应该默认在端口开始 8000。 。 。 .

转到 packages/creator-hub 在这个单曲中,并做到这一点:

  1. 复制 .env.example 改为 .env 如果你以前没做过的话.
  2. 设定 VITE_INSPECTOR_PORT (原始内容存档于2018-10-21) (英语). env var in .env 将会是 8000 (这是 @dcl/inspector dev 服务器, 我们在上一节开始 .
  3. 设定 VITE_ASSET_PACKS_JS_PORT 到SDK7在第一节开始运行的端口(8001) (中文(简体) ).
  4. 设定 VITE_ASSET_PACKS_JS_PATH (原始内容存档于2018-10-21) (英语). env var in .env 路径 bin/index.js 在第一节中复制.
  5. 设定 VITE_ASSET_PACKS_CONTENT_URL (原始内容存档于2018-10-21) (英语). env var in .env 将会是 http://localhost:9000/asset-packs (这是我们在第一节开始的内容服务器).
  6. 运行 npm start 启动应该从端口启动的本地服务器 3000

现在你们都准备好了,可以在此repo中开始开发SDK7场景,从本地的构建器开始使用,并通过预览场景来测试,该场景应该使用本地的构建器服务器服务开发的javascript文件.

测试检查员的新资产

检查员在运行时间从S3取出资产目录. 若为 latest/catalog.json 无法获取(例如,在预置的PR分支上,在CI中,或离线),它自动倒回 catalog.json 捆绑在 @dcl/asset-packs npm包-所以督察总是会装入.

当你添加一个 新设 本地资产不会自动出现在“资产包”标签中,因为CDN和捆绑的目录尚不清楚。 有两个选择:

现存的插头编组处理所有事务. npm run upload 现在也上传 catalog.json 作为 asset-packs/latest/catalog.json 给MineIO, 反射CI对S3所做的.

跟着步骤走 地方发展 在上文中,然后以下列方式开放检查员:

http://localhost:8000/?contentUrl=http://localhost:9000/asset-packs

目录列表和所有资产文件都在当地提供——完全端到端测试,不需要远程CDN.

备选案文2——通过PR上传到dev CDN

推出你的分行并评论 /upload-assets (仅限成员参加)。 CI 将把您分支的所有资产文件上传到开发 CDN (CI) https://builder-items.decentraland.zone)并张贴一个确认上传的评论.

然后配置检查器以使用 Dev CDN :

VITE_ASSET_PACKS_CONTENT_URL=https://builder-items.decentraland.zone

或当直接打开检查员:

http://localhost:8000/?contentUrl=https://builder-items.decentraland.zone

目录指针( E)latest/catalog.json)仅在合并到 main,因此"资产包"标签仍将显示当前已发布的目录——但资产文件本身将可供加载.

解决问题

失踪 @dcl/ecs 依赖性

此软件包依赖 @dcl/ecs 对于几种类型。 此软件包即使应该如此, 也不会被添加为依赖性, 因为这会在安装时引起问题 @dcl/sdk@next 在现场。 问题如下:

  1. @dcl/sdk - > (中文) @dcl/ecs
  2. @dcl/sdk - > (中文) @dcl/sdk-commands - > (中文) @dcl/inspector - > (中文) @dcl/asset-packs - > (中文) @dcl/ecs

当用户安装时 @dcl/sdk@next 作为现场,该更新 @dcl/ecs 但由于冲突 npm 储存 @latest 在节点和模块顶端的版本 @next 版本只呼唤 @dcl/sdk/node_modules。这会引起运行时间问题.

因此,我们决定 消除明显的依赖性 @dcl/ecs 从 @dcl/asset-packs 软件包,允许用户安装 @dcl/sdk@next 或毫无问题地升级版本. 缺点是,如果在某个项目中使用这个软件包,其中 @dcl/ecs 无法使用,它会破裂。 这个包不应该在 德克萨斯州的场景之外使用 所以这不应该是一个问题.

为了更深入地了解结构和设计决定:

版本与发布记录

@dcl/asset-packs 共发布 293 个版本,首次发布于 2023/09/06;过去 12 个月发布了 68 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.26.1latest2026/11/102 天前
2.26.02026/11/074 天前
2.25.12026/11/056 天前
2.25.02026/11/056 天前
2.24.02026/10/2022 天前
2.23.02026/10/2023 天前

其他发布通道:next → 2.7.2-20251208165801.commit-7c106da。

关于 @dcl/asset-packs 的常见问题

@dcl/asset-packs 是什么?

分散式资产包 -- -- 为分散式场景收集3D资产

如何安装 @dcl/asset-packs?

在项目目录运行 npm install @dcl/asset-packs,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@dcl/ecs(^7.15.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@dcl/asset-packs 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dcl/asset-packs 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@dcl/asset-packs 可以商用吗?

@dcl/asset-packs 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@dcl/asset-packs 的下载量有多少?

根据 npm 官方下载统计,@dcl/asset-packs 在 2026/10/12 – 2026/11/10 这 30 天内被下载 11,908 次,日均约 397 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dcl/asset-packs 还在维护吗?

最新版本 2.26.1 发布于 2026/11/10(2 天前);至今共发布 293 个版本,其中过去 12 个月发布了 68 个;首次发布于 2023/09/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。