Guida alla build del progetto con architettura modulare ES6.
# Installa dipendenze
npm install
# Build per produzione
npm run build
# Build con watch mode per sviluppo
npm run dev
La build genera una cartella dist/ autosufficiente per la distribuzione:
Bundle JavaScript:
sasha-player.esm.js - ES Module (per import in progetti moderni)sasha-player.js - UMD build (per uso diretto in browser)sasha-player.min.js - UMD minificato (produzione)Assets statici (copiati automaticamente):
index.html - Demo principale a livello root di distassets/ - Assets demo (CSS, immagini, audio)themes/ - Tutti i temi CSS (default, genz, light)examples/ - Esempi d'uso (basic.html, umd.html)README.html - Documentazione principale convertita in HTML (da README.md)docs/BUILD.html - Build guide convertito in HTML (da docs/BUILD.md)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.
// Import tutto il player
import SashaPlayer from './dist/sasha-player.esm.js';
// Import selettivo
import { SashaPlayer, ThemeManager, EVENTS } from './dist/sasha-player.esm.js';
<!-- 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>
<script type="module">
import SashaPlayer from 'https://cdn.example.com/sasha-player@2.2.0/sasha-player.esm.js';
</script>
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/)
Il file rollup.config.js configura:
src/index.js@rollup/plugin-json - Import package.json per versioning automatico@rollup/plugin-node-resolve - Risoluzione moduli@rollup/plugin-terser - Minificazione (solo build produzione)package.json (unica fonte di veritΓ )| Script | Descrizione |
|---|---|
npm run build |
Build produzione (tutti i formati) |
npm run dev |
Build development con watch mode |
npm run watch |
Alias per dev |
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.
Per pubblicare su npm:
# 1. Aggiorna versione
npm version patch|minor|major
# 2. Build
npm run build
# 3. Pubblica
npm publish --access public
themes/ NON sono inclusi nel bundle JavaScriptdist/themes/ durante la builddemo-source/index.html) viene copiata in dist/index.html (root di dist)demo-source/assets/) vengono copiati in dist/assets/dist/ Γ¨ autosufficiente: contiene bundle, demo, assets, temi, esempi e documentazione HTMLdist/ ad ogni build