# @chamvi/sandbox-local 中文文档

规范地址：https://npmcn.com/package/%40chamvi/sandbox-local/

版本：0\.8\.0
npm 元数据更新时间：2026-11-08T20:20:08.069Z
中文译文更新时间：2026-11-09T10:57:07.783Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40chamvi/sandbox-local
原文对照：https://npmcn.com/package/%40chamvi/sandbox-local/?lang=original
项目主页：https://chamvi.dev/
源码仓库：https://github.com/chamvi/chamvi

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

- 包体积（解压后）：98 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=26\.0\.0
- 运行依赖：1 个
- peer 依赖：@chamvi/core ^0\.8\.0，@chamvi/sandbox ^0\.8\.0
- 首次发布：2026-10-25T08:42:17.814Z
- 最新版本发布：2026-11-08T20:20:07.690Z
- 近 30 天下载量：2854（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 15 个）

## 中文简介

Chamvi的本地沙盒提供商:临时目录中的工作空间,不隔离.

## 安装

```sh
npm install @chamvi/sandbox-local
```

也可以使用：`pnpm add @chamvi/sandbox-local`、`yarn add @chamvi/sandbox-local`、`bun add @chamvi/sandbox-local`

## README

![@chamvi/sandbox-local](https://raw.githubusercontent.com/chamvi/chamvi/master/.github/assets/logo.svg)

# @chamvi/ sandbox- 当地

**临时目录中的工作空间,用于开发和测试.**  
命令作为您的用户在主机上被产出:没有容器,没有隔离.  
使用 `@chamvi/sandbox-docker` 或者说 `@chamvi/sandbox-k8s` 对于任何模型可以引导.

[![npm version](https://img.shields.io/npm/v/@chamvi/sandbox-local)](https://www.npmjs.com/package/@chamvi/sandbox-local) [![CI](https://github.com/chamvi/chamvi/actions/workflows/ci.yml/badge.svg)](https://github.com/chamvi/chamvi/actions/workflows/ci.yml) [![License](https://img.shields.io/npm/l/@chamvi/sandbox-local)](https://github.com/chamvi/chamvi/blob/master/packages/sandbox-local/LICENSE)

* * *

**目录**

-   [安装](https://npmcn.com/package/%40chamvi/sandbox-local/#readme-installation)
-   [使用量](https://npmcn.com/package/%40chamvi/sandbox-local/#readme-usage)
-   [它做了什么,没有做什么](https://npmcn.com/package/%40chamvi/sandbox-local/#readme-what-it-does-and-does-not-do)
-   [选项](https://npmcn.com/package/%40chamvi/sandbox-local/#readme-options)
-   [API 密码](https://npmcn.com/package/%40chamvi/sandbox-local/#readme-api)
-   [许可证](https://npmcn.com/package/%40chamvi/sandbox-local/#readme-license)

## 安装

```bash
npm install @chamvi/sandbox-local @chamvi/sandbox @chamvi/core ai --save
```

仅限无害环境管理,节点.js `>=26.0.0`,POSIX主机(Linux 或 macOS),带有 `git` 编辑 `PATH`。 。 。 . `@chamvi/core` 财务报告和审定财务报表 `@chamvi/sandbox` 是同行依赖;没有其他运行时间依赖.

## 使用量

```typescript
import { createWorkspaceManager } from '@chamvi/sandbox';
import type { IWorkspaceManager } from '@chamvi/sandbox';
import { createLocalSandbox } from '@chamvi/sandbox-local';

// no isolation: commands run as your user, for development and tests only
export function createDevWorkspaces(root?: string): IWorkspaceManager {
    return createWorkspaceManager({ provider: createLocalSandbox({ root }) });
}
```

每个工作空间都是文件夹 `<root>/<id>/` (单位:千美元)`root` 默认为 `<os tmpdir>/chamvi-workspaces`与 `repo/` (模式的) `/workspace`, (中文(简体) ), `home/`, (中文(简体) ), `tmp/` (单位:千美元) `workspace.json` 记录(运行编号、部署、储存、参考、, `env`、创建和期满) `find` 重建工作空间, 并读取垃圾收集, 因此重新启动的过程再次到达运行的工作空间 。 创造者 `env` 在磁盘上写入记录,所以文件夹是 `0700` 和记录 `0600` (仅拥有者). `dispose()` 删除文件夹.

## 它做了什么,没有做什么

**没有隔离.** 一个命令作为主机用户运行,与主机的文件系统,网络和进程联系. `/workspace` 工具输入中的路径仅限于文件夹,包含符号链接(其真实路径离开文件夹的路径,例如通过寄存器带来的链接,是一个 `ValidationError`; 在每次通话前检查, 因此同时运行的命令仍然可以互换链接, 但是 `bash` 能够 `cd /` 并读取您的SSH密钥。 把它用在你的机器上 还有你信任的模型和寄存器 还有测试.

它所执行的:

-   **环境**: 只有主机 `PATH`, (中文(简体) ), `HOME` 财务报告和审定财务报表 `TMPDIR` 在工作空间文件夹内, `GIT_TERMINAL_PROMPT=0`, (中文(简体) ), `GIT_CONFIG_NOSYSTEM=1` (一个系统 gitconfig 可以命名一个证书助手, 如 macOS) `osxkeychain`, (中文(简体) ), `NPM_CONFIG_UPDATE_NOTIFIER=false`, (中文(简体) ), `CI=true`,软件包缓存变量(`XDG_CACHE_HOME`, (中文(简体) ), `npm_config_cache`, (中文(简体) ), `PIP_CACHE_DIR`, (中文(简体) ), `GOMODCACHE`, (中文(简体) ), `GOCACHE`, (中文(简体) ), `COMPOSER_CACHE_DIR`下 `<root>/.cache`,由根的每个工作空间共享(`cache: false` 未设置),并配置 `env`。没有其他主机变量(指针、云证书)达到命令.
-   **暂停和中止**:每个命令启动自己的进程组(`detached`); 超时、中止或处置会用 `SIGKILL`包括背景孙辈。 杀死计时器在孩子离开时被清除,因此它从不表示再利用的pid. 当它开始的背景工作时退出的命令仍然保留其输出(`node server.js & echo started`返回 2 s (`KILL_GRACE_MS`)在出口后使用自己的出口代码 `timedOut: false`;该任务一直运行到工作空间被处理为止,就像多克和库伯涅茨一样,其输出也重新定向(`nohup node server.js > log 2>&1 &`) (中文(简体) ). 工作区会记得这样的命令的流程组,一旦组结束就会忘记它(每秒检查一次, `LINGER_CHECK_MS`;一个组的ID只在每个成员消失后再被再使用),所以处置会杀死这些任务,而不是一个后来接管了ID的组. 剩下的一个窗口是一个结束的组,而另一个进程组则在第二组内进行。 只有产生工作的过程才知道其群体,因此,工作也随着这一过程而死(在工作过程中) `exit`,该 `chamvi` CLI 到达 SIGTERM 和 SIGINT 上 : 与 Docker 或 Kubernetes 工作空间不同, 重启后再次发现的本地程序保存其文件但没有背景工作, 和 SIGKILL 所杀的进程( 或一个在不带设备的情况下退出的程序) `exit` 事件,例如,在未处理的SIGTERM上)离开工作运行,在任何后处理之外.
-   **输出盖**:每条溪流64个KiB,排出过水口.
-   **无图像**: 本地工作空间不运行容器图像, 因此 `create_workspace` 从未提供 `image` 此提供者( 请求的是一个 `ValidationError`) (中文(简体) ).
-   **终身**数字 : `limits.maxLifetimeMs` (违约7天)是期满; `collectGarbage({ deployment, isSettled })` 删除部署中已过期的工作空间文件夹 `root` (以及坠毁过程)和 `isSettled`,那些定居的跑道, 先处理开放的跑道。 没有工作空间的文件夹被留下。 无法删除的文件夹不会停止通行: 其他的去, 一个去 `SandboxError` 与计数和第一个失败 投出在结尾.

`cpu`, (中文(简体) ), `memory`, (中文(简体) ), `storage` 财务报告和审定财务报表 `pids` 没有执行,所以 `limits` 带 `maxLifetimeMs` 只有这个.

## 选项

`createLocalSandbox(options?)`数字 :

| 选项 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `root` | `string` | `<os tmpdir>/chamvi-workspaces` | 每个工作空间有一个文件夹的目录 |
| `env` | `Record<string, string>` | 无 | 添加到每个工作空间的环境( 胜过默认) |
| `limits` | `{ maxLifetimeMs? }` | `604_800_000` | 工作空间的硬命盖 |
| `cache` | `boolean` | `true` | 将软件包缓存指向 `<root>/.cache` |
| `clock` | `IClock` | `systemClock` | 过期和超时 |

## API 密码

| 导出 | 仁爱 | 目的 |
| --- | --- | --- |
| `createLocalSandbox` | 函数 | 这个 `ISandboxProvider` (单位:千美元)`name: 'local'`(中文(简体) ) |

类型 : `LocalSandboxOptions`。 。 。 .

## 许可证

原载 [Apache 许可证 2.0](https://npmcn.com/package/%40chamvi/sandbox-local/LICENSE)。 。 。 .

## 常见问题

### @chamvi/sandbox-local 是什么？

Chamvi的本地沙盒提供商:临时目录中的工作空间,不隔离\.

### 如何安装 @chamvi/sandbox-local？

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

### @chamvi/sandbox-local 支持 TypeScript 吗？

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

### @chamvi/sandbox-local 支持 ESM 还是 CommonJS？

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

### @chamvi/sandbox-local 需要什么版本的 Node\.js？

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

### @chamvi/sandbox-local 可以商用吗？

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

### @chamvi/sandbox-local 的下载量有多少？

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

### @chamvi/sandbox-local 还在维护吗？

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

