Skip to main content

Directory Structure

ModulesPress follows a modern and organized directory structure that separates source code, assets, and compiled files. Here's a detailed breakdown of each directory and its purpose.

Core Directories

books-generator/
├── .cache/ # Cache storage (views, compiled templates)
├── artifacts/ # Compiled and packaged plugin versions as zip files
├── build/ # Compiled Vite assets
├── resources/ # Source assets requiring compilation
├── src/ # PHP source code
├── static/ # Uncompiled/raw assets
├── vendor/ # Composer dependencies
├── node_modules/ # NPM dependencies
└── views/ # Blade template files
└── plugin.php # Plugin main file

Source Code (src/)

The src directory contains your PHP source code that will be autoloaded via Composer:

src/
└── Modules/ # Plugin modules
├── Books/ # Example module
└── Users/ # Example module

Resource Files (resources/)

The resources directory contains source files that require compilation:

resources/
├── apps/ # React applications
│ ├── admin/ # Admin panel app
│ │ └── app.tsx # TSX file with React app
│ │ └── app.scss # SCSS file for this React app
│ └── frontend/ # Frontend apps
├── scripts/ # TypeScript files
│ └── form-submit.ts # TS file to execute logic on form submission
├── styles/ # SCSS files
└── types/ # TypeScript type definitions

Static Assets (static/)

The static directory contains assets that don't require compilation, they are copied in the build folder:

static/
├── fonts/ # Font files
├── imgs/ # Images
└── js/ # Pre-compiled JavaScript
└── css/ # Pre-compiled CSS

Additional Directories

.cache/

  • Stores temporary files
  • Compiled Blade templates
  • Plugin-specific cache

artifacts/

  • Contains packaged plugin versions
  • Created by modulespress pack command
  • Version-controlled releases

build/

  • Compiled Vite assets
  • Production-ready files
  • Generated during build process

views/

  • Blade template files
  • Used for rendering UI components
  • Cached in .cache directory

Configuration Files

books-generator/
├── composer.json # PHP dependencies
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript configuration
├── vite.config.ts # Vite build configuration
└── .gitignore # Git ignore rules
Hot Module Replacement

The build system supports HMR (Hot Module Replacement) during development. Changes to files in the resources directory will automatically trigger recompilation and updates in the browser.