Loading...
Ask or search...
Ctrl K
Loading...

wheels generate app

This command works correctly without options (parameters). Option support is under development and will be available soon.

Create a new Wheels application from templates.

Synopsis

wheels generate app [name] [template] [directory] [options]
wheels g app [name] [template] [directory] [options]
wheels new [name] [template] [directory] [options]

Description

The wheels generate app command creates a new Wheels application with a complete directory structure, configuration files, and optionally sample code. It supports multiple templates for different starting points.

Arguments

| Argument | Description | Default | |----------|-------------|---------| | name | Application name | MyApp | | template | Template to use | wheels-base-template@BE | | directory | Target directory | ./{name} |

Options

| Option | Description | Default | |--------|-------------|---------| | reloadPassword | Set reload password | '' (empty) | | datasourceName | Database datasource name | App name | | cfmlEngine | CFML engine (lucee/adobe/boxlang) | lucee | | --useBootstrap | Include Bootstrap CSS | false | | --setupH2 | Setup H2 embedded database | true | | --init | Initialize as CommandBox package | false | | --force | Overwrite existing directory | false |

Available Templates

wheels-base-template@BE (Default)

wheels generate app myapp
  • Backend Edition template
  • Complete MVC structure
  • Sample code and configuration
  • H2 database setup by default

HelloWorld

wheels generate app myapp HelloWorld
  • Simple "Hello World" example
  • One controller and view
  • Great for learning

HelloDynamic

wheels generate app myapp HelloDynamic
  • Dynamic content example
  • Database interaction
  • Form handling

HelloPages

wheels generate app myapp HelloPages
  • Static pages example
  • Layout system
  • Navigation structure

Examples

Create basic application

wheels generate app blog

Create with custom template

wheels generate app api Base@BE

Create in specific directory

wheels generate app name=myapp directory=./projects/

Create with Bootstrap

wheels generate app portfolio --useBootstrap

Create with H2 database (default is true)

wheels generate app demo --setupH2

Create with all options

wheels generate app name=enterprise template=HelloDynamic directory=./apps/ \
  reloadPassword=secret \
  datasourceName=enterprise_db \
  cfmlEngine=adobe \
  --useBootstrap \
  --setupH2

Generated Structure

myapp/
├── .wheels-cli.json      # CLI configuration
├── box.json              # Dependencies
├── server.json           # Server configuration
├── Application.cfc       # Application settings
├── config/
│   ├── app.cfm          # App configuration
│   ├── routes.cfm       # URL routes
│   └── settings.cfm     # Framework settings
├── controllers/
│   └── Main.cfc         # Default controller
├── models/
├── views/
│   ├── layout.cfm       # Default layout
│   └── main/
│       └── index.cfm    # Home page
├── public/
│   ├── stylesheets/
│   ├── javascripts/
│   └── images/
├── tests/
└── wheels/              # Framework files

Configuration Files

box.json

{
  "name": "myapp",
  "version": "1.0.0",
  "dependencies": {
    "wheels": "^2.5.0"
  }
}

server.json

{
  "web": {
    "http": {
      "port": 3000
    }
  },
  "app": {
    "cfengine": "lucee5"
  }
}

.wheels-cli.json

{
  "name": "myapp",
  "version": "1.0.0",
  "framework": "wheels",
  "reload": "wheels"
}

Database Setup

With H2 (Embedded)

wheels generate app myapp
  • H2 is setup by default (--setupH2=true)
  • No external database needed
  • Perfect for development
  • Auto-configured datasource
  • To disable: --setupH2=false

With External Database

  1. Create application:

    wheels generate app myapp datasourceName=myapp_db --setupH2=false
    
  2. Configure in CommandBox:

    server set app.datasources.myapp_db={...}
    

Post-Generation Steps

  1. Navigate to directory

    cd myapp
    
  2. Install dependencies

    box install
    
  3. Start server

    box server start
    
  4. Open browser

    http://localhost:3000
    

Template Development

Create custom templates in ~/.commandbox/cfml/modules/wheels-cli/templates/apps/:

mytemplate/
├── config/
├── controllers/
├── models/
├── views/
└── template.json

Best Practices

  1. Use descriptive application names
  2. Choose appropriate template for project type
  3. Set secure reload password for production
  4. Configure datasource before starting
  5. Run tests after generation

Common Issues

  • Directory exists: Use --force or choose different name
  • Template not found: Check available templates with wheels info
  • Datasource errors: Configure database connection
  • Port conflicts: Change port in server.json

See Also