SuperAPI AI 工具集

rslib-modern-package

编程与开发

查看项目

更新于 10-16 01:06

技能介绍

用途:在创建新的 Rslib 库、现代化改造现有 JS/TS 包,或按一套有主见的现代库标准审查包时使用。该技能是有主见的,会描述推荐的现代包契约,并可能在让包更简单、更安全、对现代使用者更友好时建议破坏性变更。

主要标准:新库默认 ESM 优先,最好纯 ESM;严格 TypeScript 与正确的声明文件;通过 package.json#exports 显式公开 API;小而命名的导出面;少量运行时依赖,但不把零依赖当教条;输出小巧可摇树且 sideEffects 准确;清晰区分运行时依赖、peer、可选与开发依赖;发布产物需作为制品测试;发布流程自动化、可追溯并遵循 SemVer;README.md 面向人说明用法,AGENTS.md 为未来 agent 保留包不变式。

工作流:先检查包契约,读取 package.json、锁文件/包管理器、rslib.config.、tsconfig、CI/发布配置、README.md、AGENTS.md 和现有 dist;识别包类型(Node 工具、浏览器库、同构工具、CLI、UI/组件库、框架插件、SDK 或适配器);列出支持运行时、入口、深层导入、依赖、副作用文件和发布文件;改动包形态时尽早运行 npm pack --dry-run。明确目标环境,不空说“支持现代环境”。截至 2026 年 5 月 9 日,Node.js 22 和 24 是 LTS,20 已 EOL,新包建议 engines.node >=22。兼容性下降属破坏性变更。

关键规则:优先纯 ESM,但解释兼容成本;require(esm) 的约束需文档化并测试;exports 即公共 API,不要导出 ./dist/*;types 放在条件导出首位;保有小 API 面,避免默认导出对象;避免导入时顶层副作用;可取消的异步 API 接受 AbortSignal。依赖从平台 API 出发,优先内置模块;框架/工具链放 peerDependencies,构建测试工具放 devDependencies,可选集成用 optionalDependencies 或 peerDependenciesMeta。TypeScript 保持 strict,使用 verbatimModuleSyntax、isolatedDeclarations,发出声明并验证。sideEffects 必须准确。发布前验证:运行 lint、类型检查、测试、rslib 构建,冒烟测试 ESM 输出,运行 npm pack --dry-run,优先用 rsbuild-plugin-publint 和 rsbuild-plugin-arethetypeswrong,必要时用 npx publint 和 npx --yes @arethetypeswrong/cli --pack . 作为 CLI 回退。README.md 与 AGENTS.md 发布前需存在并保持同步。发布遵循 SemVer、维护 changelog、用预发布版本和 dist-tags,优先 CI 发布与 npm provenance/可信发布。

限制:该技能不展开详细 Rslib 配置,需参考 rslib-best-practices 技能;只检查 Rslib 输出、声明、exports、files、依赖与文档是否符合现代包契约。最新 Rslib 文档见 https://rslib.rs/llms.txt;向 CJS 消费者发布 ESM 见 https://nodejs.github.io/package-examples/04-cjs-esm-interop/shipping-esm-for-cjs/。部分具体价格、平台支持细节资料暂未提供。