Understanding the BananaJS Workspace System

Workspace as Your Output Hub In BananaJS, the workspace directory serves as the central output location for all your project artifacts and generated files. Think of it as the controlled space where BananaJS organizes and manages your project's build results and development assets.

Key Functions of the Workspace

  1. Primary Project Output Contains compiled/generated files from your BananaJS projects

Stores build artifacts in an organized structure

Serves as the deployment-ready directory

  1. Implementation Workspace Houses all active development projects

Maintains separation between different apps/tasks

Provides a unified structure for all BananaJS outputs

Workspace Directory Structure

A typical workspace contains:

workspace/
├── my-app/          # Your main BananaJS project\
│   ├── dist/        # Production build output\
│   ├── .cache/      # Development cache files\
│   └── public/      # Static assets\
│
├── components/      # Shared component library\
├── tasks/           # Automation task outputs\
└── temp/            # Temporary working files\

Accessing Your Workspace The workspace is automatically created when you:

banana create-app my-app
You can navigate to it directly:
cd workspace/my-app
Workspace Management Commands
View workspace contents:

this features availble soon but it ready work on browser

banana workspace list
Clean workspace outputs:
bash
banana workspace clean
Open workspace in file explorer:

this features availble soon but it ready work on browser

banana workspace open
Best Practices
Version Control: Only commit src/ files, not workspace outputs
Cross-Project Sharing: Use the workspace for shared assets between projects
Clean Regularly: Remove old builds to save space
Path References: Always use workspace-relative paths in configurations
Customizing Workspace Location
Override the default location in banana.config.js:

javascript
export default {
  workspace: {
    path: './custom-workspace-folder',
    structure: {
      dist: 'build',
      cache: '.temp-cache'
    }
  }
}