← Torna alla demo

πŸ—οΈ Build Sasha Player

Guida alla build del progetto con architettura modulare ES6.

πŸ“‹ Prerequisiti

πŸš€ Setup Iniziale

# Installa dipendenze
npm install

πŸ”¨ Build

# Build per produzione
npm run build

# Build con watch mode per sviluppo
npm run dev

Output Build

La build genera una cartella dist/ autosufficiente per la distribuzione:

Bundle JavaScript:

  1. sasha-player.esm.js - ES Module (per import in progetti moderni)
  2. sasha-player.js - UMD build (per uso diretto in browser)
  3. sasha-player.min.js - UMD minificato (produzione)

Assets statici (copiati automaticamente):

Nota: Solo i file .MD linkati nella demo vengono convertiti in HTML. Gli altri file .MD non sono inclusi in dist/.

La cartella dist/ Γ¨ completamente autosufficiente e puΓ² essere distribuita come pacchetto statico standalone.

πŸ“¦ Utilizzo Build

ES Module (Progetti Moderni)

// Import tutto il player
import SashaPlayer from './dist/sasha-player.esm.js';

// Import selettivo
import { SashaPlayer, ThemeManager, EVENTS } from './dist/sasha-player.esm.js';

UMD (Browser)

<!-- Development -->
<script src="dist/sasha-player.js"></script>

<!-- Production -->
<script src="dist/sasha-player.min.js"></script>

<script>
  // Disponibile globalmente come Sasha
  const player = document.querySelector('sasha-player');
  console.log(Sasha.version);
</script>

CDN (futuro)

<script type="module">
  import SashaPlayer from 'https://cdn.example.com/sasha-player@2.2.0/sasha-player.esm.js';
</script>

πŸ—οΈ Struttura Progetto

sasha/
β”œβ”€β”€ src/                    # Sorgenti modular ES6
β”‚   β”œβ”€β”€ core/              # Logica core
β”‚   β”œβ”€β”€ managers/          # Gestori (config, theme, template)
β”‚   β”œβ”€β”€ ui/                # UI e controlli
β”‚   β”œβ”€β”€ utils/             # Utilities
β”‚   β”œβ”€β”€ constants/         # Costanti
β”‚   └── index.js           # Entry point
β”‚
β”œβ”€β”€ dist/                  # Build output (generato, autosufficiente)
β”‚   β”œβ”€β”€ index.html         # Demo principale (root di dist)
β”‚   β”œβ”€β”€ assets/           # Assets demo (CSS, immagini, audio)
β”‚   β”œβ”€β”€ sasha-player.esm.js
β”‚   β”œβ”€β”€ sasha-player.js
β”‚   β”œβ”€β”€ sasha-player.min.js
β”‚   β”œβ”€β”€ themes/            # Temi copiati automaticamente
β”‚   β”œβ”€β”€ examples/          # Esempi copiati automaticamente
β”‚   β”œβ”€β”€ README.html        # Documentazione convertita in HTML
β”‚   └── docs/              # Documentazione HTML (BUILD.html)
β”‚
β”œβ”€β”€ themes/                # Temi sorgente (copiati in dist/themes/)
β”‚   β”œβ”€β”€ default/
β”‚   β”œβ”€β”€ genz/
β”‚   └── light/
β”‚
β”œβ”€β”€ demo-source/           # Demo sorgente
β”‚   β”œβ”€β”€ index.html         # β†’ dist/index.html
β”‚   └── assets/            # β†’ dist/assets/
β”‚
β”œβ”€β”€ docs/                  # Documentazione sorgente (copiata in dist/docs/)
β”‚   β”œβ”€β”€ BUILD.md
β”‚   β”œβ”€β”€ DEV.md
β”‚   β”œβ”€β”€ CHANGELOG.md
β”‚   └── ...
β”‚
└── examples/              # Esempi sorgente (copiati in dist/examples/)

πŸ”§ Configurazione Build

Il file rollup.config.js configura:

πŸ“ Script Disponibili

Script Descrizione
npm run build Build produzione (tutti i formati)
npm run dev Build development con watch mode
npm run watch Alias per dev

πŸ› Debug

I sourcemap sono inclusi in tutti i build per facilitare il debugging:

// In DevTools vedrai i file sorgente originali
src/core/SashaPlayer.js
src/managers/ThemeManager.js
// etc.

πŸ“€ Pubblicazione

Per pubblicare su npm:

# 1. Aggiorna versione
npm version patch|minor|major

# 2. Build
npm run build

# 3. Pubblica
npm publish --access public

⚠️ Note

πŸ”— Link Utili