@digitraffic/common

中文文档
2026.11.13-1发布于 2026/11/13EUPL-1.2ES Module零依赖近 30 天下载 2165

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

中文使用文档
文档目录10 节
  1. 设置
  2. 如何建设
  3. 更新道具
  4. 全面更新工作流程
  5. 发布到 npmjs.com (英语)
  6. 如何使用
  7. 数字交通软件
  8. 堆栈配置
  9. 堆叠检查视图
  10. 函数构建器

数字交通-常见

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

设置

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

pnpm run setup

之后批准兴建:

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 (英语)。 。 。 .

全面更新工作流程

  1. 更新所有依赖关系 (代码、 端点和节点版本) .npmrc:

    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=变相 更新 package.json数字 :

    "packageManager": "[email protected]"
    

    见 (简体中文) 详细情况.

  2. 检查弱点 :

    pnpm audit
    

    如果在过渡性依赖中报告脆弱性,则在 package.json 和/或不适用的情况 .npmrc。 。 。 .

  3. 检查是否可以删除已有的覆盖 ——如果上游依赖性,可能不再需要现有覆盖 现在拉一个安全版本。 通过暂时移除、重置和重跑来测试每个覆盖 pnpm audit数字 :

    # Remove the override from package.json, then do a fresh resolution:
    rm -rf node_modules pnpm-lock.yaml && pnpm install
    pnpm audit
    

    如果不报告脆弱性,就不再需要这种控制——继续消除。 如果弱点再次出现, 恢复控制 见 (简体中文) 详细情况.

  4. 构建和测试 :

    pnpm run build
    pnpm run test
    
  5. 提交并打开拉动请求

    做一个功能分支的工作,这样在合并前可以审查更改.

  6. 发布新版本 - 一旦拉动请求被合并到主人身上,就公布于众 下游项目接收变化(对安全修复尤其重要):

    ./scripts/publish.sh
    

    见 发布到 npmjs.com 详情见下文.

见 (简体中文) 关于添加、更新和去除的详细指示 覆盖和 .npmrc 除外情形.

发布到 npmjs.com (英语)

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

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

./scripts/publish.sh

要以特定版本编号发布 :

./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 共发布 247 个版本,首次发布于 2022/10/05;过去 12 个月发布了 79 个版本。

版本发布日期距今
2026.11.13-1latest2026/11/13今天
2026.11.2-12026/11/0211 天前
2026.10.30-22026/10/3014 天前
2026.10.30-12026/10/3014 天前
2026.10.28-12026/10/2816 天前
2026.10.27-22026/10/2717 天前

其他发布通道:next → 2026.3.2-1,beta → 2026.5.24-1-beta。

关于 @digitraffic/common 的常见问题

@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 和提交记录判断。