核心要点禁用 `^`、`~`、`>=`、`<=`、`*` 等范围;生产依赖必须精确版本。冻结策略对关键依赖设审批与解冻窗口;构建门禁严格执行。实现示例type DepEntry = { name: string; version: string; prod: boolean } function semverValid(v: string): boolean { return /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/.test(v) } function rangeFree(v: string): boolean { return !/[\^~><=\*xX]/.test(v) && semverValid(v) } function evaluate(deps: DepEntry[]): { ok: boolean; errors: string[] } { const errors: string[] = [] for (const d of deps) { if (d.prod && !rangeFree(d.version)) errors.push(`range:${d.name}`) } return { ok: errors.length === 0, errors } } 审计与CI门禁构建前校验依赖条目;命中范围版的生产依赖直接阻断。冻结列表变更需审批并记录窗口与影响范围。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.981094s