build command

Build your AO-powered application for production deployment.

Syntax

ao-forge build [options]

Options

OptionDescriptionDefault
--framework <framework>Framework to useAuto-detect
--output <path>Output directory./dist
--optimizeEnable optimizationtrue
--source-mapsGenerate source mapsfalse
--minifyMinify assetstrue
--staticBuild for static hostingfalse
--serverBuild for server deploymentfalse
--processBuild AO processestrue
--deployDeploy after buildfalse
--platform <platform>Deployment platform-
--env <environment>Build environmentproduction
--helpShow help information-

Examples

Basic Usage

# Build for production
ao-forge build

# Build with specific framework
ao-forge build --framework nextjs
ao-forge build --framework nuxtjs

# Build with custom output directory
ao-forge build --output ./build

Advanced Usage

# Build with optimization
ao-forge build --optimize

# Build with source maps
ao-forge build --source-maps

# Build for static hosting
ao-forge build --static

# Build for server deployment
ao-forge build --server

# Build and deploy
ao-forge build --deploy

Build Types

Production Build

# Standard production build
ao-forge build

# This creates:
# - Optimized frontend bundle
# - Minified assets
# - Production-ready AO processes
# - Deployment artifacts

Static Build

# Build for static hosting
ao-forge build --static

# This creates:
# - Static HTML files
# - Optimized assets
# - Static AO processes
# - CDN-ready files

Server Build

# Build for server deployment
ao-forge build --server

# This creates:
# - Server-side rendered files
# - API routes
# - Server-ready AO processes
# - Docker-ready files

Framework-Specific Builds

Next.js Build

# Build Next.js application
ao-forge build --framework nextjs

# Build with static export
ao-forge build --framework nextjs --static

# Build with custom config
ao-forge build --framework nextjs --config ./next.config.js

Nuxt.js Build

# Build Nuxt.js application
ao-forge build --framework nuxtjs

# Build with static generation
ao-forge build --framework nuxtjs --static

# Build with custom config
ao-forge build --framework nuxtjs --config ./nuxt.config.ts

AO Process Build

Process Optimization

# Build AO processes
ao-forge build --process

# Optimize Lua code
ao-forge build --process --optimize

# Minify Lua files
ao-forge build --process --minify

Process Deployment

# Deploy processes to Arweave
ao-forge build --process --deploy

# Deploy with specific wallet
ao-forge build --process --deploy --wallet ./wallet.json

# Deploy to testnet
ao-forge build --process --deploy --testnet

Build Optimization

Frontend Optimization

  • Code splitting - Automatic code splitting for better performance
  • Tree shaking - Remove unused code
  • Minification - Compress JavaScript and CSS
  • Asset optimization - Optimize images and fonts
  • Bundle analysis - Analyze bundle size

AO Process Optimization

  • Lua minification - Remove whitespace and comments
  • Dead code elimination - Remove unused functions
  • Constant folding - Optimize constant expressions
  • Function inlining - Inline small functions

Environment-Specific Builds

Development Build

# Development build
ao-forge build --env development

# With debugging
ao-forge build --env development --debug

Staging Build

# Staging build
ao-forge build --env staging

# With staging configuration
ao-forge build --env staging --config ./config/staging.yml

Production Build

# Production build
ao-forge build --env production

# With production optimization
ao-forge build --env production --optimize

Deployment Integration

Build and Deploy

# Build and deploy to Vercel
ao-forge build --deploy --platform vercel

# Build and deploy to Netlify
ao-forge build --deploy --platform netlify

# Build and deploy to GitHub Pages
ao-forge build --deploy --platform github

Platform-Specific Builds

# Vercel build
ao-forge build --platform vercel

# Netlify build
ao-forge build --platform netlify

# Docker build
ao-forge build --platform docker

Build Configuration

ao.config.yml

# Build configuration
build:
  output: './dist'
  optimize: true
  sourceMaps: false
  minify: true
  compression: true
  
# Process configuration
processes:
  - name: 'counter'
    file: './ao/counter.lua'
    optimize: true
  - name: 'token'
    file: './ao/token.lua'
    optimize: true

# Deployment configuration
deploy:
  platform: 'vercel'
  environment: 'production'
  domain: 'my-app.vercel.app'

Build Scripts

package.json Scripts

{
  "scripts": {
    "build": "ao-forge build",
    "build:prod": "ao-forge build --env production",
    "build:staging": "ao-forge build --env staging",
    "build:static": "ao-forge build --static",
    "build:server": "ao-forge build --server"
  }
}

Error Handling

Common Errors

  1. Build fails
    Error: Build failed with errors
    Solution: Check for syntax errors and missing dependencies
    
  2. Process build fails
    Error: Process build failed
    Solution: Check Lua syntax and process configuration
    
  3. Deployment fails
    Error: Deployment failed
    Solution: Check deployment configuration and credentials
    

Best Practices

Build Optimization

  1. Use production builds for deployment
  2. Enable optimization for better performance
  3. Minify assets to reduce bundle size
  4. Use source maps for debugging
  5. Test builds before deployment

Deployment

  1. Use staging environment for testing
  2. Automate deployment with CI/CD
  3. Monitor deployment status
  4. Rollback quickly if issues occur
  5. Use CDN for static assets