# @e2b/dockerfile-utils 中文文档

规范地址：https://npmcn.com/package/%40e2b/dockerfile-utils/

版本：0\.1\.1
npm 元数据更新时间：2026-10-13T15:05:29.223Z
中文译文更新时间：2026-11-13T03:12:38.093Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40e2b/dockerfile-utils
原文对照：https://npmcn.com/package/%40e2b/dockerfile-utils/?lang=original
项目主页：https://e2b.dev/?utm_source=npm&utm_medium=referral&utm_campaign=package_homepage&utm_content=e2b-dockerfile-utils
源码仓库：https://github.com/e2b-dev/e2b

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

- 包体积（解压后）：245 kB，10 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-10-08T21:09:44.428Z
- 最新版本发布：2026-10-13T15:05:27.184Z
- 近 30 天下载量：2414135（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

E2B Dockerfile utils - 从 BuildKit 和 Moby 移植的 Dockerfile 解析器、 shell 解析器和.dockerignore 匹配器

## 安装

```sh
npm install @e2b/dockerfile-utils
```

也可以使用：`pnpm add @e2b/dockerfile-utils`、`yarn add @e2b/dockerfile-utils`、`bun add @e2b/dockerfile-utils`

## README

# @ e2b/ dockerfile- utils

Dockerfile 解析器和 shell 借记器移植自 [构建 Kit](https://github.com/moby/buildkit/tree/master/frontend/dockerfile) (单位:千美元) `.dockerignore` 匹配器从 [暴徒/骑兵](https://github.com/moby/patternmatcher),没有运行时间依赖。 用于 [E2B SDK 软件](https://www.npmjs.com/package/e2b) 执行 `Template.fromDockerfile` 并过滤构建上下文.

```ts
import { parseDockerfileAst, ShellLex } from '@e2b/dockerfile-utils'

const ast = parseDockerfileAst(`
FROM node:24 AS build
ENV KEY="a  b" OTHER=c
RUN <<EOF
npm ci
npm run build
EOF
`)

for (const instruction of ast.instructions) {
  console.log(instruction.name, instruction.flags, instruction.args)
}

const lex = new ShellLex(ast.escapeToken)
lex.processWords('KEY="a  b" OTHER=c') // ['KEY=a  b', 'OTHER=c']
```

`parseDockerfileAst` 处理解析指令( o)`# escape=`, (中文(简体) ), `# syntax=`),注释(包括行内续作),构建者旗帜,JSON/exec表格和这里的docs,以及报告行号和警告. `ShellLex` 与 BuildKit 一样, 分割和未引用单词 `$VAR` 编号 : `${VAR:-default}` 以后的扩展参考.

```ts
import { PatternMatcher } from '@e2b/dockerfile-utils'

const matcher = new PatternMatcher(['node_modules', '*.log', '!keep.log'])
matcher.matches('node_modules/pkg/index.js') // true
matcher.matches('keep.log') // false
```

`PatternMatcher` 应用 `.dockerignore` 与上下文根相对的斜线分隔路径的语义: 匹配目录的图案排除其下的所有内容,以及 `!` 模式重新包含路径(最后匹配模式获胜)。 无效模式抛出平原 `Error`。 。 。 .

## 常见问题

### @e2b/dockerfile-utils 是什么？

E2B Dockerfile utils - 从 BuildKit 和 Moby 移植的 Dockerfile 解析器、 shell 解析器和\.dockerignore 匹配器

### 如何安装 @e2b/dockerfile-utils？

在项目目录运行 npm install @e2b/dockerfile-utils，或使用 pnpm add / yarn add / bun add。

### @e2b/dockerfile-utils 支持 TypeScript 吗？

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

### @e2b/dockerfile-utils 支持 ESM 还是 CommonJS？

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

### @e2b/dockerfile-utils 需要什么版本的 Node\.js？

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

### @e2b/dockerfile-utils 可以商用吗？

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

### @e2b/dockerfile-utils 的下载量有多少？

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

### @e2b/dockerfile-utils 还在维护吗？

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

