Skip to content

@web-engine-dev/build

Build orchestration for game projects with multi-platform targets.

Features

  • Multi-Platform: Web, mobile, desktop targets
  • Build Configs: Development, production, staging
  • Code Bundling: Tree-shaking, minification
  • Asset Processing: Integrated asset pipeline
  • Environment Config: Per-target settings

Installation

bash
npm install @web-engine-dev/build
# or
pnpm add @web-engine-dev/build

Quick Start

typescript
import { GameBuilder } from '@web-engine-dev/build';

const builder = new GameBuilder({
  entry: './src/main.ts',
  outDir: './dist',
  targets: ['web', 'pwa', 'electron'],
});

// Development build
await builder.build('development');

// Production build
await builder.build('production');

API Overview

Build Configuration

typescript
const config = {
  entry: './src/main.ts',
  outDir: './dist',

  targets: ['web', 'pwa'],

  development: {
    sourceMaps: true,
    minify: false,
    hotReload: true,
  },

  production: {
    sourceMaps: false,
    minify: true,
    splitChunks: true,
  },
};

CLI Usage

bash
# Development build
npx web-engine build --mode development

# Production build
npx web-engine build --mode production

# Specific target
npx web-engine build --target pwa --mode production

# Watch mode
npx web-engine build --watch

Target-Specific Config

typescript
const config = {
  targets: {
    web: {
      publicPath: '/',
      outputFormat: 'esm',
    },
    pwa: {
      manifest: './manifest.json',
      serviceWorker: true,
    },
    electron: {
      nodeIntegration: true,
      preloadScript: './preload.js',
    },
  },
};

Environment Variables

typescript
// .env.development
GAME_SERVER_URL=http://localhost:3000
DEBUG=true

// .env.production
GAME_SERVER_URL=https://api.game.com
DEBUG=false

// Access in code
const serverUrl = import.meta.env.GAME_SERVER_URL;

Proprietary software. All rights reserved.