zephyr-cli
v1.0.1
Published
CLI tool for running build commands and uploading assets to Zephyr
Readme
zephyr-cli
CLI tool for running build commands and automatically uploading assets to Zephyr.
Installation
npm install zephyr-cli
# or
pnpm add zephyr-cli
# or
yarn add zephyr-cliUsage
Run Command (Default)
Run any build command and automatically upload the resulting assets:
ze-cli [options] <command>Examples
# Run npm scripts
ze-cli pnpm build
ze-cli yarn build
ze-cli npm run build
# Run build tools directly
ze-cli tsc
ze-cli swc
ze-cli esbuild --bundle
# With environment variables
ze-cli NODE_ENV=production webpack
# Mark as SSR build
ze-cli --ssr pnpm buildDeploy Command
Upload pre-built assets from a directory:
ze-cli deploy <directory> [options]Examples
# Upload from ./dist directory
ze-cli deploy ./dist
# Upload with specific target
ze-cli deploy ./dist --target ios
# Mark as SSR
ze-cli deploy ./dist --ssrOptions
--ssr- Mark this snapshot as server-side rendered--target, -t <target>- Build target:web,ios, orandroid(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.jsonfor scripts - TypeScript (tsc): Reads
tsconfig.jsonor the file specified with-pflag - 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 loginif needed) - A git repository (for application identification)
- A
package.jsonfile (for application metadata)
License
Apache-2.0
