build command
Build your AO-powered application for production deployment.
Syntax
ao-forge build [options]
Options
| Option | Description | Default |
|---|---|---|
--framework <framework> | Framework to use (nextjs, nuxtjs, svelte, react, vue) | Auto-detect |
--output <path> | Output directory | ./dist |
--optimize | Enable optimization | true |
--source-maps | Generate source maps | false |
--minify | Minify assets | true |
--static | Build for static hosting | false |
--server | Build for server deployment | false |
--process | Build AO processes | true |
--deploy | Deploy after build | false |
--platform <platform> | Deployment platform | - |
--env <environment> | Build environment | production |
--help | Show 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:
- Detecting your framework from package.json
- Running the framework's build command (npm run build, pnpm build, etc.)
- Copying build artifacts to the output directory
- 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
- Build fails
Error: Build failed with errors Solution: Check for syntax errors and missing dependencies - Process build fails
Error: Process build failed Solution: Check Lua syntax and process configuration - Deployment fails
Error: Deployment failed Solution: Check deployment configuration and credentials
Best Practices
Build Optimization
- Use production builds for deployment
- Enable optimization for better performance
- Minify assets to reduce bundle size
- Use source maps for debugging
- Test builds before deployment
Deployment
- Use staging environment for testing
- Automate deployment with CI/CD
- Monitor deployment status
- Rollback quickly if issues occur
- Use CDN for static assets
Related Commands
ao-forge dev- Start development serverao-forge init- Create new projectao-forge config- Manage configuration
