SuperAPI AI 工具集

rust-npm-publish

部署与运维

查看项目

更新于 10-16 02:39

技能介绍

用途:把 Rust 编译出的二进制文件通过 npm 分发,采用 optionalDependencies 平台包模式(与 SWC、Turbopack、esbuild 同思路)。主包是薄的 JS 包装层(含 bin.js),按用户操作系统与 CPU 只安装匹配的一个平台包,每个平台包只放该目标平台的预编译二进制。

主要能力:覆盖完整发布流水线、版本同步、workspace:* 协议处理、平台矩阵、主包包装与平台包清单生成,并提供排错参考与脚本模板。

使用方式:仓库提供 publish.config.ts 配置 scope、binaries、platforms、mainPackages、cargoWorkspace、repositoryUrl。发布流水线顺序为 sync-versions → generate-manifests → add-platform-deps → copy-binaries → validate-binaries → prepare-publish → validate-workspace → publish-platforms → wait-propagation → publish-main → restore-packages;平台包必须先于主包发布并等待传播。bin.js 用 require.resolve('pkg/package.json') 定位平台包,用 execFileSync 转发退出码;process.platform 返回 win32 需映射为 windows-x64。平台包清单含 os/cpu 字段与 postinstall.js 用于 chmod。版本以根 package.json 为唯一来源,用 npm version patch 后运行 pnpm tsx scripts/sync-versions.ts 传播;发布前用 prepare-publish.ts 把 workspace:* 替换为真实版本,发布后用 restore-packages.ts 还原。安装技能:npx skills add -g onsager-ai/dev-skills --skill rust-npm-publish -a claude-code -y。

适用场景:首次搭建发布、运行发布流水线、新增平台、版本同步/升级、调试发布失败。新增平台需在配置数组、Rust 目标(rustup target add)、CI 矩阵中添加并重新生成清单。

限制:具体收费、价格、额外功能效果及未列出的平台信息暂未提供。