import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; import dts from "vite-plugin-dts"; export default defineConfig({ root: __dirname, cacheDir: "../../../node_modules/.vite/packages/react-audio", plugins: [ react(), dts({ entryRoot: "src", tsconfigPath: "./tsconfig.lib.json", insertTypesEntry: true, }), ], build: { outDir: "./dist", emptyOutDir: true, reportCompressedSize: true, sourcemap: true, lib: { entry: { index: "src/index.ts", "provider/index": "src/provider/index.ts", "hooks/index": "src/hooks/index.ts", "hooks/use-engine-state/use-engine-state": "src/hooks/use-engine-state/use-engine-state.ts", "hooks/use-audio-engine/use-audio-engine": "src/hooks/use-audio-engine/use-audio-engine.ts", "hooks/use-timeline/use-timeline": "src/hooks/use-timeline/use-timeline.ts", "hooks/use-transport/use-transport": "src/hooks/use-transport/use-transport.ts", "hooks/use-transport-time/use-transport-time": "src/hooks/use-transport-time/use-transport-time.ts", "hooks/use-track/use-track": "src/hooks/use-track/use-track.ts", "hooks/use-plugin-chain/use-plugin-chain": "src/hooks/use-plugin-chain/use-plugin-chain.ts", "hooks/use-chain-plugin/use-chain-plugin": "src/hooks/use-chain-plugin/use-chain-plugin.ts", "hooks/use-audio-fx-plugin/use-audio-fx-plugin": "src/hooks/use-audio-fx-plugin/use-audio-fx-plugin.ts", "hooks/use-parameter/use-parameter": "src/hooks/use-parameter/use-parameter.ts", "hooks/use-preset/use-preset": "src/hooks/use-preset/use-preset.ts", "hooks/use-chain-snapshot/use-chain-snapshot": "src/hooks/use-chain-snapshot/use-chain-snapshot.ts", "hooks/use-bus/use-bus": "src/hooks/use-bus/use-bus.ts", "hooks/use-midi-controller/use-midi-controller": "src/hooks/use-midi-controller/use-midi-controller.ts", "hooks/use-analyser/use-analyser": "src/hooks/use-analyser/use-analyser.ts", "hooks/use-playlist/use-playlist": "src/hooks/use-playlist/use-playlist.ts", "stores/index": "src/stores/index.ts", "a11y/index": "src/a11y/index.ts", "error-codes/index": "src/error-codes/index.ts", "components/index": "src/components/index.ts", "components/plugin-slot/plugin-slot": "src/components/plugin-slot/plugin-slot.tsx", "components/plugin-chain-view/plugin-chain-view": "src/components/plugin-chain-view/plugin-chain-view.tsx", "components/plugin-parameter-knob/plugin-parameter-knob": "src/components/plugin-parameter-knob/plugin-parameter-knob.tsx", "components/plugin-parameter-slider/plugin-parameter-slider": "src/components/plugin-parameter-slider/plugin-parameter-slider.tsx", "components/preset-manager/preset-manager": "src/components/preset-manager/preset-manager.tsx", "components/midi-controller-setup/midi-controller-setup": "src/components/midi-controller-setup/midi-controller-setup.tsx", "components/transport-controls/transport-controls": "src/components/transport-controls/transport-controls.tsx", "components/track-list/track-list": "src/components/track-list/track-list.tsx", "components/track-row/track-row": "src/components/track-row/track-row.tsx", "components/master-meter/master-meter": "src/components/master-meter/master-meter.tsx", "components/mixer/mixer": "src/components/mixer/mixer.tsx", "components/audio-visualizer/audio-visualizer": "src/components/audio-visualizer/audio-visualizer.tsx", "components/audio-player/audio-player": "src/components/audio-player/audio-player.tsx", "components/basic-player/basic-player": "src/components/basic-player/basic-player.tsx", "components/premium-player/premium-player": "src/components/premium-player/premium-player.tsx", "components/microphone-controls/microphone-controls": "src/components/microphone-controls/microphone-controls.tsx", "components/glados-controls/glados-controls": "src/components/glados-controls/glados-controls.tsx", "components/plugin-loader/plugin-loader": "src/components/plugin-loader/plugin-loader.tsx", }, formats: ["es"], }, rollupOptions: { treeshake: true, output: { preserveModules: true, preserveModulesRoot: "src", entryFileNames: "[name].js", }, external: [ "@suaveplan/audio-controllers", "@suaveplan/audio-engine-browser", "@suaveplan/audio-fx-plugin-audio-player", "@suaveplan/audio-fx-plugin-base", "@suaveplan/audio-fx-plugin-glados", "@suaveplan/audio-fx-plugin-microphone", "@suaveplan/audio-fx-plugin-mixer", "@suaveplan/audio-timeline", "@suaveplan/audio-transport", "@suaveplan/error", "@suaveplan/events", "@suaveplan/opentelemetry", "@suaveplan/types", "react", "react-dom", "react/jsx-runtime", "tslib", "zod", "zustand", "zustand/vanilla", /^node:/, ], }, }, });