or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

build-distribution.mddevelopment-workflow.mdindex.mdproject-management.mdutilities.md
tile.json

build-distribution.mddocs/

Build and Distribution

Commands for creating distributables and publishing Electron applications to various platforms and distribution channels.

Capabilities

Make Command

Generate distributables for the current Electron application using configured makers.

/**
 * Generate distributables for Electron application
 * Usage: electron-forge make [dir] [options]
 */
interface MakeOptions {
  /** Directory to run the command in */
  dir: string;
  /** Enable interactive prompts */
  interactive: boolean;
  /** Skip packaging step and use output from previous package run */
  skipPackage?: boolean;
  /** Override make targets for this run */
  overrideTargets?: string[];
  /** Target build architecture */
  arch?: string;
  /** Target build platform */
  platform?: string;
}

/**
 * Exported function for programmatic access to make options
 * Parses command line arguments and returns configured MakeOptions
 * @returns Promise resolving to MakeOptions configuration
 */
function getMakeOptions(): Promise<MakeOptions>;

Usage Example:

import { getMakeOptions } from "@electron-forge/cli/dist/electron-forge-make";

// Get configured make options programmatically
const options = await getMakeOptions();
console.log(`Building for ${options.platform}/${options.arch}`);

Command Line Usage:

# Make distributables for current directory
electron-forge make

# Make for specific directory
electron-forge make /path/to/project

# Skip packaging step (use previous package output)
electron-forge make --skip-package

# Override targets
electron-forge make --targets=dmg,zip

# Make for specific platform and architecture
electron-forge make --platform=win32 --arch=x64

Command Options:

  • [dir] - Directory to run the command in (default: current directory)
  • --skip-package - Skip packaging the Electron application, and use the output from a previous package run instead
  • -a, --arch [arch] - Target build architecture (default: process.arch)
  • -p, --platform [platform] - Target build platform (default: process.platform)
  • --targets [targets] - Override your make targets for this run (comma-separated list)

Publish Command

Publish the current Electron application to configured distribution platforms.

/**
 * Publish Electron application to distribution platforms
 * Usage: electron-forge publish [dir] [options]
 */
interface PublishOptions {
  /** Directory to run the command in */
  dir: string;
  /** Enable interactive prompts */
  interactive: boolean;
  /** Run make command and save publish metadata without uploading */
  dryRun?: boolean;
  /** Publish artifacts from the last saved dry run */
  dryRunResume?: boolean;
  /** List of deployment targets to publish to */
  publishTargets?: string[];
  /** Make options configuration for building distributables */
  makeOptions?: MakeOptions;
}

Command Line Usage:

# Publish current directory project
electron-forge publish

# Publish specific directory
electron-forge publish /path/to/project

# Dry run (don't actually publish)
electron-forge publish --dry-run

# Publish from previous dry run
electron-forge publish --from-dry-run

# Publish to specific targets
electron-forge publish --target=github,s3

Command Options:

  • [dir] - Directory to run the command in (default: current directory)
  • --target [target[,target...]] - A comma-separated list of deployment targets (default: all publishers in your Forge config)
  • --dry-run - Run the make command and save publish metadata without uploading anything
  • --from-dry-run - Publish artifacts from the last saved dry run

Types

/**
 * Core API functions for build and distribution
 */
interface ForgeAPI {
  make(options: MakeOptions): Promise<void>;
  publish(options: PublishOptions): Promise<void>;
}