SuperAPI AI 工具集

npm-package

通用与其它

查看项目

更新于 10-15 23:43

技能介绍

用途:以 Bun 作为主要运行时和工具链来构建并发布 npm 包,输出可在所有 npm 消费环境使用。适用于从零创建 npm 库、为现有包搭建构建/测试/lint 工具、修复 CJS/ESM 互操作、exports map 或 TypeScript 声明问题、发布到 npm、审查包配置。不适用于构建 npx 可执行 CLI、构建应用(非发布包)或 monorepo(本技能面向单包仓库)。

工具链:运行时/包管理器用 Bun;打包用 Bunup(原生、双输出、生成 .d.ts);类型声明由 Bunup 经 tsc 生成;TypeScript 用 module: "nodenext"、strict: true;格式化与基础 lint 用 Biome v2;类型感知 lint 用 ESLint + typescript-eslint;测试用 Vitest;版本管理用 Changesets;发布用 npm publish --provenance(Trusted Publishing / OIDC)。

使用方式:运行脚手架脚本生成项目,例如 bun run <skill-path>/scripts/scaffold.ts ./my-package --name my-package --description "..." --author "..." --license MIT,可选 --dual 生成 CJS/ESM 双输出、--no-eslint 仅用 Biome。随后 cd my-package 并 bun install,安装 bunup、typescript、vitest、@vitest/coverage-v8、@biomejs/biome、@changesets/cli 等依赖。开发流程:bun run test:watch、bun run lint、bun run typecheck、bun run test、bun run build、bunx changeset、bunx changeset version、bun run release。

关键规则:package.json 用 "type": "module",用 exports 而非 main,types 必须是每个 exports 块的首个条件,导出 "./package.json",用 files: ["dist"],发布前运行 npm pack --dry-run。TypeScript 用 nodenext、strict、noUncheckedIndexedAccess、declarationMap,不用路径别名。禁止 any,优先具名导出,类型导入用 import type。engines.node 设为 >=20.19.0。测试用 Vitest 并设覆盖率阈值 ≥80%。

限制与注意:bun build 不生成 .d.ts,CJS 输出为实验性,且不做语法降级;bun publish 不支持 --provenance,使用 NPM_CONFIG_TOKEN。新增或删除导出路径属于 semver 主版本变更。资料未提供具体价格、平台支持范围或效果数据。