# @endo/ses-ava 中文文档

规范地址：https://npmcn.com/package/%40endo/ses-ava/

版本：1\.4\.2
npm 元数据更新时间：2026-06-12T04:54:03.673Z
中文译文更新时间：2026-11-13T16:55:36.403Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40endo/ses-ava
原文对照：https://npmcn.com/package/%40endo/ses-ava/?lang=original
项目主页：https://github.com/endojs/endo/tree/master/packages/ses-ava#readme
源码仓库：https://github.com/endojs/endo

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

- 包体积（解压后）：38 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：5 个
- 首次发布：2021-06-02T00:54:34.760Z
- 最新版本发布：2026-06-12T04:54:03.482Z
- 近 30 天下载量：16434（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：66（近 12 个月 3 个）

## 中文简介

虚拟化AVA的测试在SES下效果更好.

## 安装

```sh
npm install @endo/ses-ava
```

也可以使用：`pnpm add @endo/ses-ava`、`yarn add @endo/ses-ava`、`bun add @endo/ses-ava`

## README

# `@endo/ses-ava`

_赛-阿瓦_ 包装 AVA `test` 函数并初始化 SES-shim 选项 适合调试测试。 这包括控制台的日志错误

-   上个回合的深叠
-   未编辑的堆栈跟踪
-   未编辑错误消息

要使用此模块, 在您的 AVA 测试文件中, 替换

```js
import 'ses'; // or however you initialize the SES-shim
import test from 'ava';
```

与

```js
import test from '@endo/ses-ava/prepare-endo.js';
```

添加

```json
  "devDependencies": {
    // ...
    "@endo/ses-ava": "...", // for the current version of @endo/ses-ava
    // ...
  },
```

具体到"依赖". @endo/ses-ava 本身依赖于 AVA 作为 正常的依赖,所以您包括 @ endo/ses- ava 常规 依赖,捆绑者可能会把你的代码 与所有的AVA.

SES-AVA与尼尼微押韵.

# 支持多种配置

SES-AVA还提供了一个命令行工具, `ses-ava`,可以运行 AVA 与 单个命令中的多个配置, 截取标记以过滤 用于有趣的配置. 这个 `ses-ava` 命令消耗 `"ava"` 和(新设) `"sesAvaConfigs"` 属性 内 `package.json` 来发现和命名支持的配置 参考文献 `--only` 财务报告和审定财务报表 `--exclude` 备选案文(和各自的 `-o` 财务报告和审定财务报表 `-x` 缩写) `"ava"` 配置为 `default`如果有的话.

在适当的配置下,包可以运行许多相同的测试 有无初始化的远藤环境. 这对远藤有用 _硬化模块_: 使用模块 `harden` 改为 捍卫其接口的完整性,视 关于是否与HardenedJS的 `lockdown`。 。 。 .

对于不论环境如何可能使用的测试,SES-AVA提供 a 一个 `@endo/ses-ava/test.js` 模块. 它输出 `test` 从 `ava` 默认. 但随着 `node` 条件 `ses-ava:endo`,它输出一个包裹 `test` 无法校正错误, 因此测试会看到原始错误消息 否则会被SES的Assert机械所校正.

```js
import test from '@endo/ses-ava/test.js';
```

SES-AVA 然后允许不同的AVA配置设置不同的 环境. 例如 `lockdown` 配置可能看起来像 :

```js
export default {
  require: ['@endo/ses-ava/prepare-endo-config.js'],
  nodeArguments: ['-C', 'ses-ava:endo']
};
```

这依赖于SES-AVA来初始化一个 远藤环境,包括SES shims和意外发送 shim,以及 登记包裹的 SES-AVA `test` 声明器,可以解析错误 assert shim 从SES 生成的消息. 如果测试不导入 `@endo/ses-ava/test.js`,则需要 `@endo/ses-ava/prepare-endo-config.js` 确保环境充分 已初始化. 在远藤寄存器的根部,看看 `ava-*.config.mjs` 模块 例如配置.

然后,进入 `package.json`我们可以使用 `ses-ava` 改为 `ava`。 。 。 .

```json
{
  "scripts": {
    "test": "ses-ava",
    "test:c8": "c8 ${C8_OPTIONS:-} ses-ava"
  },
  "avaConfigs": {
    "lockdown": "test/_ava-lockdown.config.mjs",
    "unsafe": "test/_ava-lockdown-unsafe.config.mjs",
  }
}
```

有了这个配置, `ses-ava ...args --exclude lockdown` 财务报告和审定财务报表 `ses-ava ...args --only unsafe` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}会把那些.. `unsafe` 配置 . 使用 `ses-ava` 下级 `c8` 允许所有配置覆盖已使用的代码.

# 兼容性

如果你已经使用 `@endo/ses-ava` 这样做

```js
import 'ses'; // or however you initialize the SES-shim
import rawTest from 'ava';
import { wrapTest } from '@endo/ses-ava';

const test = wrapTest(rawTest);
```

密码会继续有效 但应该升级到上面 可能的话,模式.

## 常见问题

### @endo/ses-ava 是什么？

虚拟化AVA的测试在SES下效果更好\.

### 如何安装 @endo/ses-ava？

在项目目录运行 npm install @endo/ses-ava，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ses-ava，可以用 npx ses-ava 直接运行。

### @endo/ses-ava 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/endo\_\_ses-ava 是否存在。

### @endo/ses-ava 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @endo/ses-ava 可以商用吗？

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

### @endo/ses-ava 的下载量有多少？

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

### @endo/ses-ava 还在维护吗？

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

