实现示例type Pkg = { type?: 'module' | 'commonjs'; main?: string; module?: string; exports?: Record<string, any> } function isJs(path?: string): boolean { return !!path && /\.js$/.test(path) } function isCjs(path?: string): boolean { return !!path && /\.cjs$/.test(path) } function isMjs(path?: string): boolean { return !!path && /\.mjs$/.test(path) } function validExports(exp?: Record<string, any>, type?: 'module' | 'commonjs'): boolean { if (!exp) return true const keys = Object.keys(exp) for (const k of keys) { const v = exp[k] if (typeof v === 'string') { if (type === 'module' && !/\.m?js$/.test(v)) return false if (type === 'commonjs' && !/\.c?js$/.test(v)) return false } if (typeof v === 'object') { for (const c of Object.keys(v)) { const t = v[c] if (typeof t !== 'string') return false if (c === 'import' && !/\.m?js$/.test(t)) return false if (c === 'require' && !/\.c?js$/.test(t)) return false } } } return true } function evaluate(pkg: Pkg): { ok: boolean; errors: string[] } { const errors: string[] = [] if (pkg.type === 'module') { if (pkg.main && !(isMjs(pkg.main) || isJs(pkg.main))) errors.push('type-module-main') if (pkg.module && !isJs(pkg.module)) errors.push('type-module-module') } if (pkg.type === 'commonjs') { if (pkg.main && !(isCjs(pkg.main) || isJs(pkg.main))) errors.push('type-cjs-main') } if (!validExports(pkg.exports, pkg.type)) errors.push('exports') return { ok: errors.length === 0, errors } } 审计与发布治理审计入口字段与条件导出;不一致阻断并输出修复建议。变更需兼容性验证与审批,防止双包危害进入产线。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部