SuperAPI AI 工具集

api2cli-publish-to-npm

编程与开发

查看项目

更新于 10-16 00:24

技能介绍

用途:把 api2cli 生成的 CLI 工具发布到 npm registry,让用户可通过 npm i -g <name> 安装或用 npx <name> 运行。

主要能力与流程:

  1. 预检:运行 npm whoami 确认登录态,失败则提示先执行 npm login。从 package.json 读取 name,若含模板占位符(如 {{APP_CLI}})则用目录名推导;用 npm view <name> version 判断是否首次发布、名称是否被他人占用(占用时自动改用 @<用户名>/<name>)、是否处于取消发布后 24 小时冻结期。版本方面,首次发布沿用 package.json 版本,重复发布默认递增 patch。
  2. 校验 package.json:使 name/version 与解析结果一致,bin 指向 ./dist/index.js,files 为 ["dist/index.js", "README.md"](排除体积可达 50MB+ 的编译产物),type 设为 module,补充 description、repository(取自 git remote)、license(默认 MIT)及 bun 引擎约束。改名时同步 README.md 与 SKILL.md 中的命令引用。
  3. 审查 README:确保面向 npm 陌生用户,含安装与使用章节,命令用最终包名;清除本地绝对路径与 monorepo 内部步骤;转义尖括号以免被 npm 的 Markdown 渲染器当作 HTML。
  4. 构建与校验:bun run build,确认 dist/index.js 首行为 #!/usr/bin/env bun;用 npm pack --dry-run 检查文件与体积(建议小于 200KB),不泄漏 src、node_modules、.env 等。
  5. 确认与发布:展示包名、版本、账号、文件与安装命令后,由用户在终端执行 cd <cli-directory> && npm publish --access public,因为 npm 的 2FA 需交互式浏览器认证,代理无法代跑。

更新已有包:在 package.json 直接递增版本(不使用 npm version),重建、验证 shebang 与打包后由用户发布。

限制:构建失败时停止不发布;不代跑 npm publish 或处理 2FA;不发布 dist/index.js 与 README.md 之外的文件(除非用户明确要求);不包含独立编译二进制。