build command

Build your AO-powered application for production deployment.

Syntax

ao-forge build [options]

Options

OptionDescriptionDefault
--framework <framework>Framework to use (nextjs, nuxtjs, svelte, react, vue)Auto-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 custom output directory
ao-forge build --output ./build

# Clean build
ao-forge build --clean

Advanced Usage

# Clean build (removes output directory first)
ao-forge build --clean

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

Build Process

The build command works by:

  1. Detecting your framework from package.json
  2. Running the framework's build command (npm run build, pnpm build, etc.)
  3. Copying build artifacts to the output directory
  4. Generating build summary

Build Output

# After running ao-forge build
dist/
├── index.html          # Main HTML file
├── assets/             # CSS, JS, images
   ├── main.js
   ├── main.css
   └── images/
└── manifest.json       # Build manifest

Framework Support

The build command automatically detects your framework and runs the appropriate build command:

All Supported Frameworks

  • Next.js - Runs npm run build (or pnpm/yarn equivalent)
  • Nuxt.js - Runs npm run build (or pnpm/yarn equivalent)
  • React - Runs npm run build (or pnpm/yarn equivalent)
  • Vue - Runs npm run build (or pnpm/yarn equivalent)
  • Svelte - Runs npm run build (or pnpm/yarn equivalent)

AO Process Management

Note: AO process building and deployment is handled separately through the AOS CLI, not through ao-forge build.

AO Process Development

# Start AO process for development
ao-forge process start

# List running processes
ao-forge process list

# Stop AO process
ao-forge process stop

AO Process Deployment

# Deploy AO process using AOS CLI directly
aos [process-name] --load ./ao/contract.lua

# Deploy with specific wallet
aos [process-name] --load ./ao/contract.lua --wallet ./wallet.json

# Deploy to testnet
aos [process-name] --load ./ao/contract.lua --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