实现示例type Override = { name: string; target: string; version: string } const allowNames = new Set<string>(['lodash','express','react','vue','@example/core']) 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 valid(o: Override): boolean { return allowNames.has(o.name) && allowNames.has(o.target) && semverValid(o.version) } function evaluate(list: Override[]): { ok: boolean; errors: string[] } { const errors: string[] = [] for (const o of list) if (!valid(o)) errors.push(`override:${o.name}->${o.target}`) return { ok: errors.length === 0, errors } } 审计与CI门禁记录替换与重定向条目;命中非白名单或非精确版本直接阻断。变更需审批与回归校验;产线仅接受受控清单。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.780650s