Zum Inhalt

vite.element.config.ts

import { URL, fileURLToPath } from 'node:url';
import { defineConfig } from 'vite';

// Standalone build of the <physarum-player> custom element: a single
// self-contained ES module. No PWA, no Solid app shell. WGSL is inlined via
// ?raw, so the output needs no external engine assets.
export default defineConfig({
  resolve: {
    alias: { '~': fileURLToPath(new URL('./src', import.meta.url)) },
  },
  assetsInclude: ['**/*.wgsl'],
  build: {
    target: 'es2022',
    sourcemap: true,
    outDir: 'dist-player',
    emptyOutDir: true,
    copyPublicDir: false,
    lib: {
      entry: fileURLToPath(new URL('./src/player/element.ts', import.meta.url)),
      formats: ['es'],
      fileName: () => 'physarum-player.js',
    },
  },
});