Vigia

将 @vercel/build-utils 从 14.x 升级到 15.x

根据 TypeScript 类型自动比较 @vercel/build-utils 14.23.0 与 15.0.0 的公开 API。签名变化表示可能存在不兼容变更,并非确定结论。

概要

已删除的导入路径0
已删除的导出61
已修改的签名2
已删除的类或接口成员0
已修改的类或接口成员0
新增弃用0
要求变化(engines、peer 依赖)0
新增导出0

已删除的导出

importexportkind之前
@vercel/build-utilsmd5function(value: Buffer): string
@vercel/build-utilsTraceFntype<T>(name: string, fn: () => Promise<T>, tags?: Record<string, string> | undefined) => Promise<T>
@vercel/build-utilsPropertiestype{ [P in keyof T as T[P] extends (...args: any[]) => any ? never : P]: T[P]; }
@vercel/build-utilsCreateZipFntype(lambda: Lambda | NodejsLambda) => Promise<CreateZipResult>
@vercel/build-utilsmaybeReadJSONfunction<T = any>(path: string): Promise<T | undefined>
@vercel/build-utilsfinalizeLambdafunction(params: FinalizeLambdaParams): Promise<FinalizeLambdaResult>
@vercel/build-utilsgetContentTypefunction(path: string): string
@vercel/build-utilsBuildOutputFileinterfaceinterface
@vercel/build-utilsCreateZipResultinterfaceinterface
@vercel/build-utilsExtendedPayloadinterfaceinterface
@vercel/build-utilsMAX_LAMBDA_SIZEvariablenumber
@vercel/build-utilsgetEncryptedEnvfunction(envFilename: string | undefined, envContent: string | undefined): EncryptedEnvFile | undefined
@vercel/build-utilshydrateFilesMapfunction(files: Files, filesMap: Record<string, string>, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>): Promise<void>
@vercel/build-utilsEncryptedEnvFiletype[string, FileBlob]
@vercel/build-utilsSerializedLambdatypeProperties<Omit<T, "files" | "zipBuffer">> & FilesMapProp
@vercel/build-utilsFunctionSizeErrorclassclass
@vercel/build-utilsdeserializeLambdafunction(files: Files, config: SerializedLambda | SerializedNodejsLambda, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>, options?: DeserializeLambdaOptions | undefined): Promise<Lambda>
@vercel/build-utilsgetPrerenderChainfunction(prerender: Prerender): Chain | undefined
@vercel/build-utilsisRouteMiddlewarefunction(route: Route): route is any
@vercel/build-utilsvalidatePrerenderfunction(prerender: PrerenderLike): asserts prerender is { lambda: Lambda; }
@vercel/build-utilsvalidateLambdaSizefunction(outputPath: string, runtime: string, size: number): void
@vercel/build-utilsBuildResultMetadatainterfaceinterface
@vercel/build-utilsGroupLambdasOptionstype{ force: "all" | undefined; maxBundleSizeMb: number | undefined; debug: boolean | undefined; }
@vercel/build-utilsSerializedFileFsReftype{ type: "FileFsRef"; mode: number; fsPath: string; size?: number | undefined; contentType: string | undefined; }
@vercel/build-utilsSerializedPrerendertypeProperties<Omit<Prerender, "lambda" | "fallback">> & { fallback: Properties<FileFsRef> | null; }
@vercel/build-utilsvalidateBuildResultfunction({ allowInvalidRuntime, buildConfig, buildResponse, vercelBaseUrl, }: ValidateBuildResultParams): Promise<ValidateBuildResultResult>
@vercel/build-utilsvalidateRegularFilefunction(file: FileFsRef): Promise<Stats> | <T extends object>(file: T | FileLike): Promise<any>
@vercel/build-utilsFinalizeLambdaParamsinterfaceinterface
@vercel/build-utilsFinalizeLambdaResultinterfaceinterface
@vercel/build-utilsgetLambdaEnvironmentfunction(lambda: LambdaLike, buffer: { byteLength: number; }, options: BytecodeCachingOptions): Record<string, string>
@vercel/build-utilsvalidateDeploymentIdfunction(deploymentId?: string | undefined): void
@vercel/build-utilsfileToBuildOutputFilefunction(params: { buildResult: FileRef | FileFsRef | FileBlob; extendedBody?: { prefix: string; suffix: string; } | undefined; outputPath: string; }): Promise<{ output: BuildOutputFile; digest: FileDigest; }>
@vercel/build-utilsgetLambdaByOutputPathfunction(params: { buildOutputMap: Record<string, File | Lambda | Prerender | EdgeFunction>; outputPath: string; }): Lambda | undefined
@vercel/build-utilsBytecodeCachingOptionsinterfaceinterface
@vercel/build-utilsSerializedEdgeFunctiontypeProperties<Omit<EdgeFunction, "name" | "deploymentTarget" | "files">> & FilesMapProp
@vercel/build-utilsSerializedNodejsLambdatypeProperties<Omit<T, "files" | "zipBuffer">> & FilesMapProp
@vercel/build-utilsdeserializeBuildOutputfunction<TFlags = unknown, TMeta = unknown, TLambda extends Lambda = Lambda>(options: DeserializeBuildOutputOptions<TMeta, TLambda>): Promise<DeserializeBuildOutputResult<TFlags, TMeta>>
@vercel/build-utilsgetBuildResultMetadatafunction(params: { buildOutputMap: Record<string, File | Lambda | Prerender | EdgeFunction>; routes: Route[]; }): BuildResultMetadata
@vercel/build-utilscollectUncompressedSizevariable(files: Files, ignoreFn?: ((fileKey: string) => boolean) | undefined): Promise<number>
@vercel/build-utilscreateFunctionsIteratorfunction(dir: string, root?: string | undefined): AsyncIterable<string>
@vercel/build-utilsdeserializeEdgeFunctionfunction(files: Files, config: SerializedEdgeFunction, repoRootPath: string, fileFsRefsCache: Map<string, FileFsRef>): Promise<EdgeFunction>
@vercel/build-utilsgetLambdaPreloadScriptsfunction(lambda: LambdaLike, buffer: { byteLength: number; }, options: BytecodeCachingOptions): string[]
@vercel/build-utilsDeserializeLambdaOptionsinterfaceinterface
@vercel/build-utilsvalidateFrameworkVersionfunction(framework: FrameworkMeta | undefined): FrameworkMeta | undefined
@vercel/build-utilsSUPPORTED_AL2023_RUNTIMESvariablereadonly ["nodejs20.x", "nodejs22.x", "nodejs24.x", "nodejs26.x", "provided.al2023", "python3.12", "python3.13", "python3.14", "ruby3.3", "bun1.4.x", "bun1.x", "executable"]
@vercel/build-utilsValidateBuildResultParamsinterfaceinterface
@vercel/build-utilsValidateBuildResultResultinterfaceinterface
@vercel/build-utilsstreamWithExtendedPayloadfunction(stream: NodeJS.ReadableStream, data?: ExtendedBodyData | undefined): NodeJS.ReadableStream
@vercel/build-utilsvalidateEnvWrapperSupportfunction(encryptedEnvFilename: string | undefined, encryptedEnvContent: string | undefined, lambda: LambdaLikeForEnvWrapper): void
@vercel/build-utilsgetLambdaSupportsStreamingfunction(lambda: LambdaLike, forceStreamingRuntime: boolean): boolean | undefined
@vercel/build-utilsprerenderToBuildOutputFilefunction(params: { buildResult: Prerender; outputPath: string; }): Promise<PrerenderToBuildOutputFileResult | null>
@vercel/build-utilsDeserializeBuildOutputConfiginterfaceinterface
@vercel/build-utilsDeserializeBuildOutputResulttypeOmit<BuildResultV2Typical, "flags"> & { flags?: TFlags | undefined; meta?: TMeta | undefined; }
@vercel/build-utilsMAX_LAMBDA_UNCOMPRESSED_SIZEvariablenumber
@vercel/build-utilsDeserializeBuildOutputOptionsinterfaceinterface
@vercel/build-utilsENV_WRAPPER_SUPPORTED_FAMILIESvariablestring[]
@vercel/build-utilsvalidateUncompressedLambdaSizefunction(outputPath: string, uncompressedBytes: number): void
@vercel/build-utilsDeserializeBuildOutputPathOverrideinterfaceinterface
@vercel/build-utilsDeserializeBuildOutputLambdaOptionstype{ forceNodejsStreaming?: boolean | undefined; useOnlyStreamingLambda?: boolean | undefined; }
@vercel/build-utilsDeserializeBuildOutputSerializedConfigtypeSerializedLambda | SerializedNodejsLambda | SerializedEdgeFunction
@vercel/build-utilsDeserializeBuildOutputSerializedPrerendertypeProperties<Omit<Prerender, "lambda" | "fallback">> & { fallback: Properties<FileFsRef> | null; }

已修改的签名

export之前之后
@vercel/build-utils · staticFallbackRoutes(copied: Pick<StaticMount, "fallback" | "urlPath">[], discovered: Pick<StaticMount, "urlPath">[], opts?: StaticPromotionOptions | undefined): RouteWithSrc[](copied: Pick<StaticMount, "urlPath" | "fallback">[], discovered: Pick<StaticMount, "urlPath">[], opts?: StaticPromotionOptions | undefined): RouteWithSrc[]
@vercel/build-utils · VercelJsonScheduleDefinitionScheduleDefinition | (Pick<ScheduleDefinition, "schedule" | "timezone" | "jitter"> & { entrypoint: string; })ScheduleDefinition | (Pick<ScheduleDefinition, "schedule" | "timezone" | "jitter"> & { entrypoint: string; command?: string[] | undefined; root?: string | undefined; })

已删除的类或接口成员

未发现。

已修改的类或接口成员

未发现。

新增弃用

未发现。

要求变化(engines、peer 依赖)

未发现。

这些版本之间的 changelog

软件包作者发布的文本,按原样显示。

15.0.0
### Major Changes

- fec2df1: Remove the legacy BYOC extension's build-output collection and deserialization utilities, Lambda finalization and size validation, and serverless environment/streaming helpers. BYOC function preparation now uses `vercel deploy describe`.

  The removed exports include `deserializeBuildOutput`, `deserializeLambda`, `deserializeEdgeFunction`, `finalizeLambda`, `collectUncompressedSize`, the `validateBuildResult` and `validateLambdaSize` families, `getEncryptedEnv`, `getLambdaEnvironment`, `getLambdaPreloadScripts`, `getLambdaSupportsStreaming`, and the associated collection/deserialization and serverless types. Also remove the unused standalone `md5` helper. Preserve `streamToDigestAsync`, `sha256`, `FileDigest`, and `ExtendedBodyData`, which still have build-container consumers.

  Remove the Node builder's outdated reference to the shared streaming helper; its AWS custom-handler streaming behavior is unchanged.

### Minor Changes

- 9b1b587: Allow explicitly selecting Node.js 26 for local builds without an environment variable.

### Patch Changes

- d123652: Accept a command argument array and `root` with Dockerfile and Containerfile schedule entrypoints. This adds configuration support; building and executing these schedules will follow separately.

把这些数据交给你的 AI 智能体

Vigia 是免费的 MCP 服务器:你的编程智能体在写代码之前就能检查版本、不兼容变更和安全漏洞。无需注册,无需 API 密钥。

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

添加到 Cursor添加到 VS Code★ 在 GitHub 上加星

任何其他 MCP 客户端
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

智能体技能(SKILL.md):告诉智能体何时使用 Vigia · 用于拉取请求的 GitHub Action

常见问题

将 @vercel/build-utils 从 14 升级到 15 有哪些不兼容变更?

在 @vercel/build-utils 14.23.0 与 15.0.0 之间,Vigia 发现 61 个已删除的导出、2 个已修改的签名,以及 0 个已删除或修改的类或接口成员。

@vercel/build-utils 15 中弃用了哪些内容?

@vercel/build-utils 15.0.0 中有 0 个导出或成员新被标记为弃用。

供智能体使用

GET https://vigia.coredls.cloud/v1/packages/npm/@vercel/build-utils/upgrade?from=14.23.0&to=15.0.0