# @cognite/reveal 中文文档

规范地址：https://npmcn.com/package/%40cognite/reveal/

版本：4\.39\.1
npm 元数据更新时间：2026-11-04T15:25:21.624Z
中文译文更新时间：2026-11-10T10:17:58.171Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cognite/reveal
原文对照：https://npmcn.com/package/%40cognite/reveal/?lang=original
项目主页：https://github.com/cognitedata/reveal/tree/master/viewer
源码仓库：https://github.com/cognitedata/reveal

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：6.7 MB，558 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：11 个
- peer 依赖：three 0\.186\.1，@cognite/sdk ^10\.0\.0
- 首次发布：2020-02-26T11:35:55.347Z
- 最新版本发布：2026-11-04T15:25:21.231Z
- 近 30 天下载量：9255（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：910（近 12 个月 98 个）

## 中文简介

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

## 安装

```sh
npm install @cognite/reveal
```

也可以使用：`pnpm add @cognite/reveal`、`yarn add @cognite/reveal`、`bun add @cognite/reveal`

## README

# 启示收视器

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

## 文档有一堆 [现场实例](https://cognitedata.github.io/reveal-docs/docs/examples/cad-basic)。 。 。 .

## 代码示例

```typescript
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();
```

## 安装

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

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

见 [我们的文件](https://cognitedata.github.io/reveal-docs/docs/examples/cad-basic) 用于使用.

## 先决条件

为了开发,您需要安装 [节点](https://nodejs.org/en/download/), (中文(简体) ), [小时](https://pnpm.io/installation) 财务报告和审定财务报表 [红宝石+ 货物](https://doc.rust-lang.org/cargo/getting-started/installation.html)。 。 。 .

运行 `pnpm install` 在观众中

## 本地软件包

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

### 创建本地软件包

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

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

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

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

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

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

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

```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`数字 :

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

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

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

```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](https://npmcn.com/package/%40cognite/reveal/visual-tests/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 是什么？

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 和提交记录判断。

