npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cloud2303/fast-update-cli

v0.1.4

Published

Expo / React Native update packaging and release CLI

Readme

Fast Update CLI

用于 Expo / React Native 项目的原生安装包上传与 Bundle 更新发布。要求 Node.js 24+,Bundle 打包需要项目使用 Hermes。

安装

npm install -g @cloud2303/fast-update-cli
rfu --version

登录

在任意目录执行:

rfu login

登录完成后直接结束。rfu status 查看当前账号,rfu logout 退出登录。

登录保存账号会话,后台地址以当前命令的 --server 或 CLI 默认地址为准;使用其他后台时,status/logout 也要指定相同地址。登录不会修改项目的后台地址或应用凭据。

使用自建后台时,账号命令通过 --server 指定地址:

rfu login --server https://updates.example.com/
rfu status --server https://updates.example.com/
rfu logout --server https://updates.example.com/

关联应用

在 App 项目目录执行:

rfu app use

按提示选择平台及已有应用,或创建新应用。rfu app refresh 更新已关联应用的凭据。

应用关联和上传使用项目的 react-fast-update.config.json。使用自建后台时,先将该文件的 server 设为对应地址:

{
  "schemaVersion": 1,
  "server": "https://updates.example.com/",
  "apps": {}
}

切换到独立的新后台数据库时,需要重新关联各平台应用。旧后台的 App ID 和 Secret 不能直接用于新后台;两端项目应重新关联 Android 和 iOS,避免保留另一端的旧凭据。

上传安装包

rfu apk upload ./app.apk
rfu apk upload ./app.ipa

先用项目的原生构建工具生成安装包,再上传到更新服务。安装包需要包含对应的更新渠道配置;上传 Android APK 需要安装 Android SDK Build Tools 和 Java。

发布 Bundle

rfu bundle release

按提示选择平台、目标原生版本和发布渠道。也可以指定平台:

rfu bundle release --platform android
rfu bundle release --platform ios
rfu bundle release --platform all

打包使用 App 项目当前的环境配置,选择渠道不会切换环境文件。

发布使用后台已登记的 APK / IPA 包名,不读取或比对 Expo 配置中的包名。先上传目标基座的安装包,再发布 RN 更新;同一平台的生产版和预览版可以使用不同包名、共用 App ID 和兼容的更新包。所选基座有多个包名时,CLI 按稳定顺序选取一个作为清单元数据,更新目标仍由基座版本和渠道决定。

更新说明可在交互中填写,直接回车可跳过,也可以使用参数:

rfu bundle release --description "修复连接问题,优化操作体验"

bundle upload 同样支持 --description。上传后也可以在后台“更新包 → 详情 → 更新说明”中修改;说明显示在客户端更新弹窗中,留空时使用默认提示。

查看帮助

rfu --help
rfu app --help
rfu apk upload --help
rfu bundle release --help

选择单包或多分包

react-fast-update.config.json 的每个平台 app 中增加 bundleMode,默认 single:

{
  "schemaVersion": 1,
  "server": "https://updates.example.com/",
  "apps": {
    "android": {
      "appId": "你的 App ID",
      "secret": "仅供 CLI 上传的 Secret",
      "bundleMode": "split"
    }
  }
}

single 使用 Expo 导出一个入口;split 调用项目安装的 @native-routes/tooling 构建 NativeRoutes 的 main/shared/业务 HBC 和资源。两种模式都上传完整清单 v4 的一个 ZIP,后台生成文件差分。客户端插件必须使用相同模式。

分包 ZIP 的 main.bundle 位于包根目录,资源保留 RN 生成的相对路径。构建目录外层的 iOS assets/、Android res/ 仅用于存放产物,不再额外添加到 ZIP 路径中;iOS 资源自身已有的 assets/ 前缀照常保留。

多分包始终在下次冷启动启用整个版本。回退时用旧源码重新发布,或重新绑定保留的旧更新包;新的发布序号使设备能够接收旧内容。已加载的引擎继续使用启动时选定的版本。