# @adobe/coriolis 中文文档

规范地址：https://npmcn.com/package/%40adobe/coriolis/

版本：2\.1\.2
npm 元数据更新时间：2026-10-01T01:33:02.002Z
中文译文更新时间：2026-11-06T22:13:13.223Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40adobe/coriolis
原文对照：https://npmcn.com/package/%40adobe/coriolis/?lang=original
项目主页：https://github.com/adobe/coriolis#readme
源码仓库：https://github.com/adobe/coriolis

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

- 包体积（解压后）：1.6 MB，74 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：0 个
- peer 依赖：eventemitter3 ^5\.0\.0，babel-polyfill ^6\.26\.0
- 首次发布：2022-01-27T18:39:03.258Z
- 最新版本发布：2025-05-15T20:41:48.059Z
- 近 30 天下载量：2273（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 0 个）

## 中文简介

一个具有高级API和特性的跨iframe通信库.

## 安装

```sh
npm install @adobe/coriolis
```

也可以使用：`pnpm add @adobe/coriolis`、`yarn add @adobe/coriolis`、`bun add @adobe/coriolis`

## README

# ![Coriolis](https://npmcn.com/package/%40adobe/coriolis/docs/coriolis-white-logo.png)

### 一个具有高级API和特性的跨iframe通信库.

[使用完整的链接](https://npmcn.com/package/%40adobe/coriolis/#readme-usefull-links) 二. 支助 [关键特性](https://npmcn.com/package/%40adobe/coriolis/#readme-key-features) 二. 支助 [如何使用](https://npmcn.com/package/%40adobe/coriolis/#readme-how-to-use) 二. 支助 [建筑](https://npmcn.com/package/%40adobe/coriolis/#readme-architecture) 二. 支助 [相关项目](https://npmcn.com/package/%40adobe/coriolis/#readme-related-projects) 二. 支助 [捐款](https://npmcn.com/package/%40adobe/coriolis/#readme-contributing) 二. 支助 [许可证发放](https://npmcn.com/package/%40adobe/coriolis/#readme-licensing) 二. 支助 [更改日志](https://npmcn.com/package/%40adobe/coriolis/#readme-changelog) 二. 支助 [未来发展](https://npmcn.com/package/%40adobe/coriolis/#readme-future-developments) 二. 支助 [探索的想法](https://npmcn.com/package/%40adobe/coriolis/#readme-ideas-to-explore)

## 有用链接

-   [文档](https://opensource.adobe.com/coriolis/)

## 关键特性

-   交叉浏览器兼容性( IE 支持请参见 1. X 版本)
-   依赖和轻量级数量较少(~ 10克b minized & gziped)
-   可扩展和模块化(可添加模块和序列器)
-   手握连接、断开和重接事件
-   帮你把大部分安全检查都从盒子里拿出来
-   多个高级功能 API :
    -   方便跨域函数调用查询模块
    -   共享状态变化的事件模块
    -   存储模块, 以可观察到的支持共享状态
    -   为您提供基础插件系统的插件模块
    -   允许对儿童内容进行基本操作的内容模块
-   非 JavaScript 原始数据类型的序列器系统, 如 :
    -   映射/ 设定对象
    -   错误对象
    -   日期对象
    -   键盘事件
    -   鼠标事件
    -   Domrect (带有坐标自动翻译)
    -   矩阵缓冲

## 怎样使用它

在您主域( 资产域) :

```
<script src="polyfill.js" type="text/javascript" charset="utf-8"></script>
<script src="coriolis.js" type="text/javascript" charset="utf-8"></script>
<div id="coriolisContainer"></div>
<script type="text/javascript">
    var coriolis = Coriolis.createIframe(
        document.querySelector('#coriolisContainer'),
        'https://your-ugc-hostname.example.com',
        '<html><head></head><body>Initial Coriolis Content</div></body></html>'
    );

    coriolis.query.call('addition', 12, 30).then(function(result) {
        console.log(result);
    });
</script>
```

在您的用户生成的内容域 :

```
<script src="polyfill.js" type="text/javascript" charset="utf-8"></script>
<script src="coriolis.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
    var coriolis = new Coriolis(
        window.parent,
        'https://your-asset-hostname.example.com',
    );

    coriolis.query.register('addition', function(a, b) {
        return Promise.resolve(a + b);
    })
</script>
```

这将加载 Coriolis 在两个域, 做一个握手, 覆盖 Iframe的内容与 `Initial Coriolis Content` 最后打印结果 `addition` 在主域中(在iframe中进行计算).

以Coriolis为例,你可以启动该项目(`npm start`)和/或检查演示文件夹。 您也可以查看生成的文档( 以 `npm run doc && open reporting/doc/index.html`) (中文(简体) ).

## 建筑

由多个组件组成的Coriolis可以配置模块和序列器. 以下是一个高层次的类图来解释类是如何相互作用的.

数据序列器和模块Loader是抽象的,如果您有其他的功能需要(例如webSocket),则可以在Postmessage上下文之外使用,并且负责Coriolis的扩展.

![](https://npmcn.com/package/%40adobe/coriolis/docs/Coriolis%20-%20Class%20diagram%20-%20High%20level.svg)

## 警卫

即使 Coriolis 独自无法保护您的资产(以您需要保护的重要内容取代资产, 如 IMS 令牌), 当您处理您无法逃脱的客户数据时, 也会有所帮助( Customer JS 代码, 客户插件, Non-Adobe 集成, RichText Editors...). 它通过三个主要想法加强安全:

-   易用防止开发者绕过安全
-   使用特定协议拒绝非预期数据
-   默认相关的安全设置配置( sadbox 属性)

你负责的另一部分是确保你的资产得到充分保护:

-   在服务器上正确配置您的交叉来源资源共享和内容安全政策
-   使用两个不同的域名, 一个是您与资产的主要域名, 一个是用户生成的内容( UCC)
-   对使用或扩展Coriolis的代码进行安全代码审查 **主要领域**
-   不通过 Coriolis 共享您的资产

如果使用 Coriolis 并应用所有这些建议, 您应该按照该 威胁模型图 中描述的保证 :

![](https://npmcn.com/package/%40adobe/coriolis/docs/Coriolis%20-%20Threat%20model.png)

## 相关项目

### [笔](https://github.com/Aaronius/penpal#readme)

允许执行查询功能的开源项目. 它在Adobe内部由Adobe Launch公司使用 [反应堆桥](https://github.com/adobe/reactor-bridge)。它只支持原始的javascript信息传输。 它不默认预设任何安全参数.

### [邮政](https://github.com/dollarshaveclub/postmate)

一个受欢迎的开源项目. 它有一个握手支持。 它只支持原始的JavaScript信息传输. 其设计只是为了有父母进行孩子交换,而并非为副方向交流所设计.

## 捐款

欢迎捐款! 读取 [贡献指南](https://npmcn.com/package/%40adobe/coriolis/.github/CONTRIBUTING.md) 更多信息.

## 许可证发放

这个项目根据Apache V2许可证获得许可. 见 [自由主义](https://npmcn.com/package/%40adobe/coriolis/LICENSE) 更多信息.

## 更改日志

### 第2.1.2号版本

-   在 npmjs 软件包中修复缺失的 Readme

### 第2.1.1号版本

-   允许以“ \*” 作为输入 URL 绕过来源验证 .

### 2.1.0版 (中文(简体) )

-   修正映射和设定序列器
-   允许推迟 PostMessage 的目标( 在 iframe 之前创建 coriolis 对象)
-   修正内容模块, 即使没有使用, 也会改写内容
-   允许内容Module 和 StoreModule 处理重接与否
-   在冲突中使 StoreModule 同步与合并Callback 连接的商店,或者在没有定义合并Callback 时使用父值.
-   如果连接丢失, 发送断开事件( 卸载事件)
-   改进打字定义
-   更新连接系统以提醒版本不匹配
-   在存储和事件模块中添加频道收听器支持和全局收听器支持

### 2.0.0版 (中文(简体) )

-   放弃对 Internet 浏览器的支持
-   添加类型脚本
-   减少使用量检查( 由 TypeScript 检查)

## 未来发展

以下是未来版本Coriolis的一些想法/改进列表. 欢迎任何捐助,如果对某一项目有兴趣,请与我们联系,但无捐助能力的活动.

-   添加安全配置
    -   当两个框架在同一域上时添加警告
    -   允许为父/ 子设置多个白名单主机
    -   允许沙盒属性的个性化
-   将一些依赖性移入对等依赖性( 允许主工程使用它们拥有多填充)
-   允许配置来自 Coriolis 构建器的 DomRectSerializaer 的目标参数

## 探索的想法

-   为存储添加严格模式( 在使用前需要声明存储对象)
-   添加一个工具, 用于帮助调试存储、 事件历史和查询
-   为多帧转发器制作后信件装饰器

## 常见问题

### @adobe/coriolis 是什么？

一个具有高级API和特性的跨iframe通信库\.

### 如何安装 @adobe/coriolis？

在项目目录运行 npm install @adobe/coriolis，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：eventemitter3（^5\.0\.0）、babel-polyfill（^6\.26\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @adobe/coriolis 支持 TypeScript 吗？

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

### @adobe/coriolis 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @adobe/coriolis 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @adobe/coriolis 可以商用吗？

@adobe/coriolis 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @adobe/coriolis 的下载量有多少？

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

### @adobe/coriolis 还在维护吗？

最新版本 2\.1\.2 发布于 2025/05/16（1\.5 年前）；至今共发布 14 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/01/28。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

