# @aws-blocks/pipeline 中文文档

规范地址：https://npmcn.com/package/%40aws-blocks/pipeline/

版本：0\.2\.4
npm 元数据更新时间：2026-11-02T10:26:07.454Z
中文译文更新时间：2026-11-07T10:55:30.169Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：287 kB，23 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：constructs ^10\.6\.0，aws-cdk-lib ^2\.257\.0
- 首次发布：2026-06-19T23:49:56.120Z
- 最新版本发布：2026-11-02T10:26:07.077Z
- 近 30 天下载量：225259（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 9 个）

## 中文简介

用于 AWS 块的 CI/CD 管道构造

## 安装

```sh
npm install @aws-blocks/pipeline
```

也可以使用：`pnpm add @aws-blocks/pipeline`、`yarn add @aws-blocks/pipeline`、`bun add @aws-blocks/pipeline`

## README

# @aws- blocks/ 管道

CDK 管道基于 CI/CD 为 AWS Blocks 应用程序所构建.

每分支创建一款自移代码Pipeline V2. 每个管道:

-   通过 AWS 编码连接从 GitHub 调取来源( OAuth, 无符号)
-   运行合成步骤( 安装 +) `cdk synth`(中文(简体) )
-   如果管道定义发生变化, 则自移动
-   在可选的人工核准和烘烤时间的情况下部署到订购的阶段

## 使用量

```ts
import { Pipeline } from '@aws-blocks/pipeline';

new Pipeline(stack, 'Pipeline', {
  source: {
    repo: 'my-org/my-app',
    connectionArn: 'arn:aws:codeconnections:us-east-1:123456789012:connection/abc',
  },
  branches: [
    {
      branch: 'main',
      stages: [
        { name: 'beta' },
        { name: 'prod', requireApproval: true, config: { domain: 'myapp.com' } },
      ],
    },
  ],
  stageFactory: (scope, stageConfig) => {
    new MyAppStack(scope, 'App', { env: stageConfig.env });
  },
});
```

对于ASync级工厂(例如, `BlocksStack.create()`),使用静态 `Pipeline.create()` 方法代替 `new Pipeline()`。 。 。 .

## 每阶段部署后步骤`postStage`(中文(简体) )

可选 `postStage` 道具运行 a **第二阶段** 在一个阶段之后 部署——例如,一个消耗阶段部署产出的步骤。 被援引 每个部署阶段和返回步骤随该阶段的后部署而相接 动作 :

```ts
import { Duration } from 'aws-cdk-lib';
import { CodeBuildStep } from 'aws-cdk-lib/pipelines';

new Pipeline(stack, 'Pipeline', {
  source: { repo: 'my-org/my-app', connectionArn: '...' },
  branches: [{ branch: 'main', stages: [{ name: 'beta' }, { name: 'prod', bakeTime: Duration.minutes(10) }] }],
  stageFactory: (scope, stageConfig) => new MyAppStack(scope, 'App', { env: stageConfig.env }),
  postStage: ({ stage, stageConfig, source }) => [
    new CodeBuildStep(`Smoke-${stageConfig.name}`, {
      input: source, // the resolved pipeline source — see below
      env: { STAGE: stageConfig.name },
      commands: ['npm ci', 'npm run smoke'],
    }),
  ],
});
```

钩子收到一个 `PostStageContext`数字 :

-   **`stage`** - CDK软件 `Stage` 返回步骤的附加.
-   **`stageConfig`** 整个阶段的配置,包括: `env` (舞台的目标) ; 读取,使一个员额步骤针对同一账户/区域.
-   **`source`** - 那个 **已解决的管道源文件集** 这个舞台的分会. 用它来做一步 `input` 因此该步骤会与已经检查完的源头相悖. 这被曝光了 所以一个打电话的人 永远不用走 构造树和 字符串匹配内部阶段 ID 以重新发现源头( 它悄悄地打开) 任何内部重命名).

**顺序 `bakeTime`。 。 。 .** 当一个舞台同时出现 `postStage` 步骤和a `bakeTime`{\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}烤肉的脚步是用来 **取决于** 舞台后的步骤,如此烘焙 只有在它们完成而不是平行赛车之后才能开始。 正在返回 `undefined` (或 `[]`)没有添加任何内容,使合成与管道相同 没有钩子.

## 控制合成运行时间

合成步骤的代码构建运行时间可以通过 `synth.partialBuildSpec`。 。 。 . 它接受三种形式:

-   **录取** (单位:千美元)`undefined`:合成步骤宣布Node.js 22为运行时间. 这是默认和推荐路径 .
-   **`null`**: 明确选择退出。 没有 `partialBuildSpec` 被注入,所以 已合成的构建 spec 包含无 `runtime-versions` 块。 用这个带 自己的运行时间(例如通过 `synth.installCommands`或依赖 构建图像的内置运行时间 .
-   **A 类 `BuildSpec`**:作为-is使用,取代了节点.js 22默认.

### 固定一个特定的节点.js版本

```ts
import { BuildSpec } from 'aws-cdk-lib/aws-codebuild';

new Pipeline(stack, 'Pipeline', {
  // ...
  synth: {
    partialBuildSpec: BuildSpec.fromObject({
      phases: { install: { 'runtime-versions': { nodejs: 20 } } },
    }),
  },
});
```

### 选择退出节点.js 22 默认值

过 `null` 完全压制注入的运行时间并自行管理:

```ts
new Pipeline(stack, 'Pipeline', {
  // ...
  synth: {
    partialBuildSpec: null,
    installCommands: ['n 20'], // or rely on the build image's default runtime
  },
});
```

## 常见问题

### @aws-blocks/pipeline 是什么？

用于 AWS 块的 CI/CD 管道构造

### 如何安装 @aws-blocks/pipeline？

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

### @aws-blocks/pipeline 支持 TypeScript 吗？

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

### @aws-blocks/pipeline 支持 ESM 还是 CommonJS？

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

### @aws-blocks/pipeline 可以商用吗？

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

### @aws-blocks/pipeline 的下载量有多少？

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

### @aws-blocks/pipeline 还在维护吗？

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

