# @e2e-dev/smol 中文文档

规范地址：https://npmcn.com/package/%40e2e-dev/smol/

版本：0\.1\.3
npm 元数据更新时间：2026-11-13T13:28:35.509Z
中文译文更新时间：2026-11-13T13:38:29.844Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40e2e-dev/smol
原文对照：https://npmcn.com/package/%40e2e-dev/smol/?lang=original
项目主页：https://github.com/e2e-inc/e2e/tree/main/packages/smol#readme
源码仓库：https://github.com/e2e-inc/e2e

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

- 包体积（解压后）：41.5 kB，11 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.22\.3 \|\| \>=24\.8\.0
- 运行依赖：0 个
- peer 依赖：e2e \>=0\.15\.0 \<1，@e2e-dev/web \>=0\.11\.0 \<1，smolmachines \>=1\.25\.1 \<2
- 首次发布：2026-10-09T13:44:55.172Z
- 最新版本发布：2026-11-13T13:28:35.180Z
- 近 30 天下载量：22985（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：37（近 12 个月 37 个）

## 中文简介

e2e的smol机器浏览器:每次测试都分支出一个温暖的铬微VM

## 安装

```sh
npm install @e2e-dev/smol
```

也可以使用：`pnpm add @e2e-dev/smol`、`yarn add @e2e-dev/smol`、`bun add @e2e-dev/smol`

## README

# @ e2e- dev/ smol (英语)

[摩尔机](https://smolmachines.com/) 浏览器 [`e2e`](https://www.npmjs.com/package/e2e)数字 : `web({ browser: smol() })` 运行每个试验尝试 在自己的分支 一个温暖的 在你的电脑上.

## 为什么选呢

使用 `smol()` 对于每次尝试都需要新浏览器的状态网络测试, 包括复试。 一个温暖的浏览器被准备一次然后分支 `app`,每个分支也得到了自己的运行应用程序和存储在VM中的数据. 这样可以测试更改文件或本地数据库而不包含该状态 进入下一个尝试。 机器在本地运行, 没有主机浏览器 账户。 外部服务仍然在尝试中共享.

## 安装

```bash
npm install --save-dev @e2e-dev/smol smolmachines
```

## 使用量

```ts
import type { E2EConfig } from 'e2e';
import { web } from '@e2e-dev/web';
import { smol } from '@e2e-dev/smol';

export default {
  targets: [
    {
      engine: web({ browser: smol({ hostPorts: [3000] }) }),
      app: { url: 'http://localhost:3000', command: { executable: 'npm', args: ['run', 'dev'] } },
    },
  ],
  workers: 4,
} satisfies E2EConfig;
```

每个工人的靴子 嵌入了Smol引擎上的一台铬机 `smolmachines` (macOS on Apple Silicon,或有KVM的Linux). 默认 `scope: 'attempt'`,每一次尝试,然后得到一个复制写分行 运行浏览器一般在一秒钟左右,视端口准备情况而定. 它有自己的内存和磁盘,在尝试结束时被删除. `prepare(cdpEndpoint)` 热浏览器在分枝之前驱动一次,所以 每一个尝试开始签名. `hostPorts` 列出 在您计算机的回回转上端口 浏览器作为自己的 `localhost`。 。 。 . 这些端口不是访问政策:机器也可以到达每个主机 循环端口通过 `host.smolvm.internal` 并有出网访问. `setup` 在 Chromium 启动前运行机器中的 shell 脚本 . `app: { source, setup, start, port }` 在测试中运行应用程序 机器而不是电脑,所以 `attempt` 范围 也获得它自己运行的应用程序副本和它保存在机器上的数据. `scope: 'worker'` 将浏览器保存在每个工人槽,由 那档子上的尝试.

完整文档生活于 [e2e.com/docs/整合/smol](https://e2e.com/docs/integrations/smol)。 。 。 .

## 许可证

阿帕奇 - 2.0

## 常见问题

### @e2e-dev/smol 是什么？

e2e的smol机器浏览器:每次测试都分支出一个温暖的铬微VM

### 如何安装 @e2e-dev/smol？

在项目目录运行 npm install @e2e-dev/smol，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：e2e（\>=0\.15\.0 \<1）、@e2e-dev/web（\>=0\.11\.0 \<1）、smolmachines（\>=1\.25\.1 \<2）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @e2e-dev/smol 支持 TypeScript 吗？

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

### @e2e-dev/smol 支持 ESM 还是 CommonJS？

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

### @e2e-dev/smol 需要什么版本的 Node\.js？

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

### @e2e-dev/smol 可以商用吗？

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

### @e2e-dev/smol 的下载量有多少？

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

### @e2e-dev/smol 还在维护吗？

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

