zephyr-cli
CLI tool for running build commands and automatically uploading assets to Zephyr.
Installation
npm install zephyr-cli
pnpm add zephyr-cli
yarn add zephyr-cli
Usage
Run Command (Default)
Run any build command and automatically upload the resulting assets:
ze-cli [options] <command>
Examples
ze-cli pnpm build
ze-cli yarn build
ze-cli npm run build
ze-cli tsc
ze-cli swc
ze-cli esbuild --bundle
ze-cli NODE_ENV=production webpack
ze-cli --ssr pnpm build
Deploy Command
Upload pre-built assets from a directory:
ze-cli deploy <directory> [options]
Examples
ze-cli deploy ./dist
ze-cli deploy ./dist --target ios
ze-cli deploy ./dist --ssr
Options
--ssr - Mark this snapshot as server-side rendered
--target, -t <target> - Build target: web, ios, or android (default: web)
--verbose, -v - Enable verbose output
--help, -h - Show help message
How It Works
Run Command
- Parses the shell command to detect the build tool and configuration files
- Detects configuration files (e.g.,
package.json, tsconfig.json, etc.)
- Warns about dynamic configs (e.g., JavaScript config files) and suggests alternatives
- Runs the command with full stdio passthrough
- Infers the output directory from the configuration
- Uploads assets to Zephyr automatically
Deploy Command
- Extracts assets from the specified directory
- Uploads assets to Zephyr's edge network
Build Tool Detection
The CLI automatically detects configuration files for:
- npm/yarn/pnpm: Reads
package.json for scripts
- TypeScript (tsc): Reads
tsconfig.json or the file specified with -p flag
- Other tools: Basic detection and suggestions
Dynamic Configuration Warning
If your build tool uses a JavaScript configuration file (e.g., webpack.config.js, rollup.config.js), the CLI will warn you that the configuration is too dynamic to analyze and suggest:
- Using one of the Zephyr bundler plugins from
@libs/
- Using
ze-cli deploy <dir> after building
Requirements
- Node.js 18+ or 20+
- A valid Zephyr authentication token (run
zephyr login if needed)
- A git repository (for application identification)
- A
package.json file (for application metadata)
License
Apache-2.0