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-midi", 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-midi/use-midi": "src/hooks/use-midi/use-midi.ts", "hooks/use-midi-input/use-midi-input": "src/hooks/use-midi-input/use-midi-input.ts", "hooks/use-midi-output/use-midi-output": "src/hooks/use-midi-output/use-midi-output.ts", "hooks/use-midi-messages/use-midi-messages": "src/hooks/use-midi-messages/use-midi-messages.ts", "hooks/use-midi-devices/use-midi-devices": "src/hooks/use-midi-devices/use-midi-devices.ts", "hooks/use-nrpn/use-nrpn": "src/hooks/use-nrpn/use-nrpn.ts", "hooks/use-rpn/use-rpn": "src/hooks/use-rpn/use-rpn.ts", "hooks/use-cc14/use-cc14": "src/hooks/use-cc14/use-cc14.ts", "components/index": "src/components/index.ts", "components/midi-device-list/midi-device-list": "src/components/midi-device-list/midi-device-list.tsx", "components/midi-activity-indicator/midi-activity-indicator": "src/components/midi-activity-indicator/midi-activity-indicator.tsx", "error-codes/index": "src/error-codes/index.ts", "midi-contract/index": "src/midi-contract/index.ts", }, formats: ["es"], }, rollupOptions: { treeshake: true, output: { preserveModules: true, preserveModulesRoot: "src", entryFileNames: "[name].js", }, external: [ "@opentelemetry/api", "@suaveplan/error", "@suaveplan/types", "react", "react-dom", "react/jsx-runtime", "tslib", /^node:/, ], }, }, });