@cognite/reveal

中文文档
4.39.1发布于 2026/11/04Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 9255

WebGL基于CAD的3D取景器和Cognite Data Fusion中处理的点云.

中文使用文档
文档目录11 节
  1. 文档有一堆 现场实例 。 。 。 .
  2. 代码示例
  3. 安装
  4. 先决条件
  5. 本地软件包
  6. 创建本地软件包
  7. API 提取器
  8. 调试
  9. 工人原始地图
  10. 创建和运行视觉测试
  11. 建议的软件包文件夹结构

启示收视器

最新版本的文件可在 https://cognittedata.github.io/reveal-docs/docs 互联网档案馆的存檔,存档日期2013-12-22。下一次发行的文件可从 https://cognittedata.github.io/reveal-docs/docs/next/ 页面存档备份,存于互联网档案馆。 。 。 .

文档有一堆 现场实例。 。 。 .

代码示例

import { Cognite3DViewer } from "@cognite/reveal";
import { CogniteClient, CogniteAuthentication } from "@cognite/sdk";

const appId = "com.cognite.reveal.example";
const client = new CogniteClient({
  appId,
  project,
  getToken
});

async function start() {
  await client.authenticate();

  const viewer = new Cognite3DViewer({
    sdk: client,
    domElement: document.querySelector("#your-element-for-viewer")
  });
  viewer.addModel({ modelId: 4715379429968321, revisionId: 5688854005909501 });
}

const project = "publicdata";
const legacyInstance = new CogniteAuthentication({
  project,
});

const getToken = async () => {
  await legacyInstance.handleLoginRedirect();
  let token = await legacyInstance.getCDFToken();
  if (token) {
    return token.accessToken;
  }
  token = await legacyInstance.login({ onAuthenticate: "REDIRECT" });
  if (token) {
    return token.accessToken;
  }
  throw new Error("authentication error");
};

start();

安装

npm install @cognite/reveal @cognite/sdk three@<version>

请在Github的发布文件中找到TreeJS的正确版本. 我们只保证支持 确切的TreeJS版本.

见 我们的文件 用于使用.

先决条件

为了开发,您需要安装 节点, (中文(简体) ), 小时 财务报告和审定财务报表 红宝石+ 货物。 。 。 .

运行 pnpm install 在观众中

本地软件包

"启示录"取景器采用本地包的结构. 这使得您可以在孤立状态下测试特性,并限制特性之间的逻辑障碍的依赖性. 软件包位于 /packages/ 子文件夹. 软件包没有强制结构,其布局和内容会因软件包向系统其他部分暴露的内容而异. 位于 viewer/package.json 将被共享,任何软件包都可以访问,无需在相应的软件包中明确宣布依赖性 package.json。 。 。 . 任何外部依赖(例如:. lodash, (中文(简体) ), threejs等)必须在根中声明 package.json 以便消费者能够正确安装 Reveal 国家防范机制一揽子计划.

创建本地软件包

创建一个新文件夹 /packages/ 文件夹,例如:. /packages/[MY-PACKAGE-NAME] 并包含一个包含以下结构的软件包:

{
  "name": "@reveal/[MY-PACKAGE-NAME]",
  "private": true,
  "main": "index.ts",
}

技术上 private: true 可以省略字段,但人们强烈建议,不要不小心将本地软件包公布给国家预防机制 npm publish 命令. 这个 index.ts 应包含任何类型、功能和/或类别,以便向该套件的消费者曝光。 您也应该创建一个 README.md 文件用于解释其意图的软件包以及使用软件包所需的任何信息.

如果您的软件包依赖于另一个本地软件包,必须明确宣布它为依赖:

{
  "name": "@reveal/[MY-PACKAGE-NAME]",
  "private": true,
  "main": "index.ts",
  "dependencies": {
    "@reveal/[SOME-LOCAL-PACKAGE]": "workspace:*"
  }
}

这个 workspace 关键词宣布,依赖性是一个本地软件包,不应从国家预防机制获取. 还有 ':*' 语法意味着它应该只是抓取任何可用的版本. 见 这个 需要更多关于 pnpm 工作空间的文档.

如果您要在软件包中添加 Rust/Webassembly 代码, 您可以在其中添加以下脚本 package.json数字 :

{
  "scripts": {
    "run-wasm-pack": "pnpm -w run ws:update-cargo-index && wasm-pack"
  }
}

并让货箱居住 <package-name>/wasm。 。 。 . 然后,箱子将自动 建造和测试 build 财务报告和审定财务报表 test 工作空间根中的脚本. 这个 ws:update-cargo-index 步骤确保地方 crates.io 索引在运行构建前已经更新 . 否则,索引更新将以安静的方式执行,命令可能看起来会被挂起几分钟.

当用Rust写作测试时,测试必须附加注释 #[wasm_bindgen_test] 属性,而不是常规 #[test],以及 wasm-bindgen-test 必须作为(非)依赖性加以补充。 所有测试都是正常的 pnpm run test 根文件夹中的脚本,但也可以手动运行,例如. wasm-pack test --chrome --headless 相关 wasm 文件夹.

也可以在与"启示录"其他部分隔开的情况下运行并测试一个本地包. 已经创建了方便功能来方便这些. 在您的软件包中添加以下脚本 package.json数字 :

{
  "scripts": {
    "test": "test": "vitest run --config ./../../vitest.config.ts",
  }
}

运行 pnpm run test 将运行您包中的所有测试,以解析 *.test.* regex图案.

要运行包含您的软件包( 以及任何依赖性) 的测试应用程序, 请创建 /app/ 包含一个 index.ts 文档. 在您的软件包中添加以下脚本 package.json数字 :

{
  "scripts": {
    "start": "pnpm -w run ws:serve"
  }
}

运行命令 pnpm start 将主机为本地主机,其中包含 HTML 模板 /app/index.ts 脚本已经转录到javascript. 看看这个例子 packages/camera-manager 软件包.

API 提取器

这个 viewer/reveal.api.md 文件包含了对Reveal公共API的描述. 在CI管道中 reveal.api.md 文件被 API 提取器选中为最新 .

为了在本地更新此文件, 运行 pnpm run update-api 之后 运行构建脚本。 这将用任何修改来更新API文件,这些修改应该在同一 PR 中被添加并执行.

调试

工人原始地图

当将源图与内嵌的网络工人捆绑在一起时,捆绑的大小会变得巨大. 因此,工人的原始地图默认被禁用。 为了给工人添加原始地图,通过 --env workerSourceMaps=true 页:1 pnpm run build 剧本.

创建和运行视觉测试

视觉测试文件必须在格式上 visual-tests/SomeTest.VisualTest.ts。参见现有的测试之一 例如如何创建测试.

视觉测试可以从 viewer/ 使用 pnpm run test:visual这将运行所有视觉测试。 你也可以这样 通过使用 pnpm run test:visual -- -t="SomeTest" (将用"Some Test"的名字进行所有测试). 注意参数只传递给客户端, 将参数传递给您需要手动启动服务器和客户端的服务器 .

关于视觉测试的更多信息,请参见: 视觉测试/README.md。 。 。 .

├── app                   # Runnable app
│ └──index.ts             # Entry point for runnable app
├── src                   # Source code for package
├── wasm                  # Rust/Webassembly source code for package
├── test                  # Automated tests
├── package.json          # Package declaration
├── index.ts              # Entry point for package
└── README.md             # Readme

版本与发布记录

@cognite/reveal 共发布 910 个版本,首次发布于 2020/02/26;过去 12 个月发布了 98 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.39.1latest2026/11/045 天前
4.39.02026/10/2911 天前
4.38.02026/10/1525 天前
4.37.02026/09/251 个月前
4.36.02026/08/182 个月前
4.35.32026/07/303 个月前

其他发布通道:experimental → 0.1.2,alpha → 3.0.0-alpha.2,beta → 3.0.0-beta.1,nightly → 4.29.3-dev.20260217。

关于 @cognite/reveal 的常见问题

@cognite/reveal 是什么?

WebGL基于CAD的3D取景器和Cognite Data Fusion中处理的点云.

如何安装 @cognite/reveal?

在项目目录运行 npm install @cognite/reveal,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:three(0.186.1)、@cognite/sdk(^10.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cognite/reveal 支持 TypeScript 吗?

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

@cognite/reveal 支持 ESM 还是 CommonJS?

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

@cognite/reveal 可以商用吗?

@cognite/reveal 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cognite/reveal 的下载量有多少?

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

@cognite/reveal 还在维护吗?

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