Publint 包导出发布验证
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指引进行安装,规范名:@user_3c6cb52e/publint-package-export-validation-skill-npm-release-checks
技能介绍
问题:发布后才暴露的导出故障
一个库包发布后最常见的故障,往往不是逻辑错误,而是消费侧问题:package.json 的 exports 字段配置不当、声明的入口路径不存在、manifest 与真实文件结构不符,导致使用者安装后 import 时直接解析失败。这些问题通常要到下游项目的 CI 里才被发现,此时包已经发布,修复意味着重新发版,甚至要处理已缓存的旧版本。本技能面向的就是发布前的这道关卡。
核心能力与工作流程
技能以 publint 为核心,提供的是一套 pre-publish 验证工作流,而不只是一条命令调用:
- 发布前检查:在
npm publish之前对库项目执行 lint,拦截导出断裂与 manifest 问题; - 消费者视角验证:关注包能否被下游正确解析和导入,而不是代码本身能否运行;
- 失败原因说明:对发现的问题,明确解释使用者会在哪里失败,而非只抛出一堆错误码;
- 灵活指定目标:可以 lint 整个库项目,也可以针对特定路径(如
./packages/my-library)做检查。
工作流程很直接:在发布前的验证环节对目标包运行 publint,审阅检查结果,修复问题后复查,确认无问题再进入发布流程。
适用边界
- 这是 pre-publish validation 工作流,不是 publint 的通用清单,也不替代包自身的测试套件;
- 检查重点是导出与 manifest 类问题,纯逻辑缺陷或性能问题仍需其他测试手段;
- 应按实际发布路径(包目录或指定路径)执行检查,避免因路径错误导致漏检。
使用场景
- 库作者准备 `npm publish` 前,对 `./packages/my-library` 运行 lint,确认导出字段无断裂再发布
- packages monorepo 维护者在发布子包前,检查各子包 exports 声明与实际入口路径是否一致
- 发布后下游报 `Cannot find module`,需要在下一版发布前定位 manifest 中导致解析失败的字段
- 为库添加新入口后,发布前验证 `exports` 字段映射能否被下游正确解析
适合人员
- 发布 npm 库的包作者:需要在 `npm publish` 前确认包导出与 manifest 没有消费侧问题
- 多包仓库(monorepo)维护者:需要逐个校验子包的 exports 字段与入口文件结构一致
- 排查下游导入失败的库维护者:需要定位 manifest 中导致 `Cannot find module` 的具体字段
- 刚为库接入新导出路径的开发者:需要在发布前验证 exports 映射可被消费者正确解析