# @digitraffic/common 中文文档

规范地址：https://npmcn.com/package/%40digitraffic/common/

版本：2026\.11\.13-1
npm 元数据更新时间：2026-11-13T10:09:59.893Z
中文译文更新时间：2026-11-13T05:55:55.962Z
软件包许可：EUPL-1\.2

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

原始 npm 页面：https://www.npmjs.com/package/%40digitraffic/common
原文对照：https://npmcn.com/package/%40digitraffic/common/?lang=original
项目主页：https://github.com/tmfg/digitraffic-common#readme
源码仓库：https://github.com/tmfg/digitraffic-common

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

- 包体积（解压后）：582 kB，263 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=24 \<25
- 运行依赖：0 个
- peer 依赖：ky 2\.2\.0，zod 4\.6\.7，undici 8\.12\.4，date-fns 4\.4\.0，pg-native 3\.9\.1，constructs 10\.8\.1，es-toolkit 1\.53\.2，pg-promise 12\.7\.1，aws-cdk-lib 2\.275\.0，@date-fns/tz 1\.5\.0，@aws-sdk/client-s3 3\.1163\.0，geojson-validation 1\.0\.2，@aws-sdk/client-sns 3\.1163\.0，@aws-sdk/lib-storage 3\.1163\.0，@smithy/node-http-handler 4\.14\.2，@smithy/fetch-http-handler 5\.8\.1，@aws-sdk/client-api-gateway 3\.1163\.0，@aws-sdk/client-secrets-manager 3\.1163\.0
- 首次发布：2022-10-05T10:55:54.003Z
- 最新版本发布：2026-11-13T10:09:59.615Z
- 近 30 天下载量：2165（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：247（近 12 个月 79 个）

## 中文简介

这是可供其他cdk项目使用的公共设施和班级的地方.

## 安装

```sh
npm install @digitraffic/common
```

也可以使用：`pnpm add @digitraffic/common`、`yarn add @digitraffic/common`、`bun add @digitraffic/common`

## README

# 数字交通-常见

这是可供其他cdk项目使用的公共设施和班级的地方.

## 设置

通过运行以下命令来初始化工程脚本. 这只需要做一次, 克隆后或 第一次调出仓库 它会安装/重新安装左上钩子.

```shell
pnpm run setup
```

之后批准兴建:

```shell
pnpm approve-builds
```

然后再次运行设置.

## 如何建设

使用 `pnpm` 来构建代码,即:.

```
pnpm install
pnpm run build
pnpm run test
pnpm run test --test-path-pattern 'dt-logger.test'
pnpm run test:watch
pnpm run test:watch --test-path-pattern 'dt-logger.test'
```

格式代码

```
pnpm run format:package-json # Format package.json
pnpm run format:check # Checks all files
pnpm run format:check-staged # Checks stagged files
pnpm run format:fix # Format all files
pnpm run format:fix-staged # Formats stagged files
```

## 更新道具

这个项目使用精确的依赖版本( 没有 semver 范围) 并定义了7天的冷却 [.npmerc (英语)](https://npmcn.com/package/%40digitraffic/common/.npmrc)。 。 。 .

### 全面更新工作流程

1.  **更新所有依赖关系** (代码、 端点和节点版本) `.npmrc`:
    
    ```bash
    pnpm deps:update-all
    ```
    
    此更新 `package.json`, (中文(简体) ), `pnpm-lock.yaml`,然后一步安装所有设备——没有单独的 `pnpm install` 需要帮助。 什麽 `pnpm deps:update-all` 是否为:
    
    -   运行 `pnpm up --latest` 所有软件包 **除外** 所列者 `pnpm.updateConfig.ignoredPackages` 内 `package.json` (例如:. `typescript`, (中文(简体) ), `@types/node`(中文(简体) )
    -   全部更新 `peerDependencies` (适用相同的除外情形)
    -   更新 `.npmrc` `use-node-version` 到最新的节点发布时间比 `minimum-release-age` 财务报告和审定财务报表 匹配 `engines.node`
    
    见 `scripts/update-deps-and-peers.ts` 详细执行情况.
    
    还有 **更新 `packageManager` 手动** ——剧本没有触及. 请检查archive-date=中的日期值 (帮助) [https://www.npmjs.com/package/pnpm?活性Tab=变相](https://www.npmjs.com/package/pnpm?activeTab=versions) 更新 `package.json`数字 :
    
    ```json
    "packageManager": "pnpm@10.x.x"
    ```
    
    见 [(简体中文)](https://npmcn.com/package/%40digitraffic/common/DEPENDENCY_OVERRIDES.md#4-pnpm-version-packagemanager-field) 详细情况.
    
2.  **检查弱点 :**
    
    ```bash
    pnpm audit
    ```
    
    如果在过渡性依赖中报告脆弱性,则在 `package.json` 和/或不适用的情况 `.npmrc`。 。 。 .
    
3.  **检查是否可以删除已有的覆盖** ——如果上游依赖性,可能不再需要现有覆盖 现在拉一个安全版本。 通过暂时移除、重置和重跑来测试每个覆盖 `pnpm audit`数字 :
    
    ```bash
    # Remove the override from package.json, then do a fresh resolution:
    rm -rf node_modules pnpm-lock.yaml && pnpm install
    pnpm audit
    ```
    
    如果不报告脆弱性,就不再需要这种控制——继续消除。 如果弱点再次出现, 恢复控制 见 [(简体中文)](https://npmcn.com/package/%40digitraffic/common/DEPENDENCY_OVERRIDES.md) 详细情况.
    
4.  **构建和测试 :**
    
    ```bash
    pnpm run build
    pnpm run test
    ```
    
5.  **提交并打开拉动请求**
    
    做一个功能分支的工作,这样在合并前可以审查更改.
    
6.  **发布新版本** - 一旦拉动请求被合并到主人身上,就公布于众 下游项目接收变化(对安全修复尤其重要):
    
    ```bash
    ./scripts/publish.sh
    ```
    
    见 [发布到 npmjs.com](https://npmcn.com/package/%40digitraffic/common/#readme-publishing-to-npmjscom) 详情见下文.
    

见 [(简体中文)](https://npmcn.com/package/%40digitraffic/common/DEPENDENCY_OVERRIDES.md) 关于添加、更新和去除的详细指示 覆盖和 `.npmrc` 除外情形.

## 发布到 [npmjs.com (英语)](https://www.npmjs.com/)

见https://www.npmjs.com/package/@digitraffic/common

要以今天的日期作为版本号发布 :

```bash
./scripts/publish.sh
```

要以特定版本编号发布 :

```bash
./scripts/publish.sh 2026.8.6-1
```

## 如何使用

在软件包中。 json 依赖性 :

```
"dependencies": {
  "@digitraffic/common": "*",
}
```

在代码中 :

```
import {DigitrafficStack, StackConfiguration} from "@digitraffic/common/dist/aws/infra/stack/stack";
```

### 数字交通软件

如果你从DigitrafficStack扩展你的堆栈,你可以得到许多好处:

-   秘密、 VPC、 Sg 和 提醒
-   堆叠校验与堆叠检查
-   使用 Stack 配置的简单配置

如果你不需要这些东西,你不应该使用 DigitrafficStack.

### 堆栈配置

常用参数在 `StackConfiguration`。为您的环境写入一次配置,然后在 cdk 项目中重复使用.

### 堆叠检查视图

使用 cdk 方面来检查您的 cdk 堆栈是否正常 :

-   堆栈命名检查( 在名称中测试/ 程序)
-   函数配置(记忆、超时、运行时间、保留货币)
-   标记, 必须定义解决方案标签
-   S3 Buckets, 无公开访问
-   Api 网关资源外壳( kebabCase和 snake case)
-   队列加密
-   日志组保留

您可以对任意堆栈使用 StackCheckAspect, DigitrafficStack 自动进行, 但您可以手动调用 :

```
Aspects.of(this).add(StackCheckingAspect.create(this));
```

任何资源都可以通过给出一个参数或者在 Stack 配置中被白化列出

### 函数构建器

函数构建器允许您在内存使用和超时时时使用提醒来制作羊排 .

默认情况下,所创建的函数可以访问数据库,但这当然是可以控制的.

创建羊肉园很简单:

```
const lambda = FunctionBuilder.create(stack, "get-metadata")
  .withTimeout(Duration.seconds(2))
  .build();
```

更多信息见文件.

## 常见问题

### @digitraffic/common 是什么？

这是可供其他cdk项目使用的公共设施和班级的地方\.

### 如何安装 @digitraffic/common？

在项目目录运行 npm install @digitraffic/common，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：ky（2\.2\.0）、zod（4\.6\.7）、undici（8\.12\.4）、date-fns（4\.4\.0）、pg-native（3\.9\.1）、constructs（10\.8\.1）、es-toolkit（1\.53\.2）、pg-promise（12\.7\.1）、aws-cdk-lib（2\.275\.0）、@date-fns/tz（1\.5\.0）、@aws-sdk/client-s3（3\.1163\.0）、geojson-validation（1\.0\.2）、@aws-sdk/client-sns（3\.1163\.0）、@aws-sdk/lib-storage（3\.1163\.0）、@smithy/node-http-handler（4\.14\.2）、@smithy/fetch-http-handler（5\.8\.1）、@aws-sdk/client-api-gateway（3\.1163\.0）、@aws-sdk/client-secrets-manager（3\.1163\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @digitraffic/common 支持 TypeScript 吗？

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

### @digitraffic/common 支持 ESM 还是 CommonJS？

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

### @digitraffic/common 需要什么版本的 Node\.js？

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

### @digitraffic/common 可以商用吗？

@digitraffic/common 使用 EUPL-1\.2 许可。声明的许可为 EUPL-1\.2，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @digitraffic/common 的下载量有多少？

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

### @digitraffic/common 还在维护吗？

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

