import { Plugin, defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { crx } from "@crxjs/vite-plugin"; import manifest from "./manifest.json"; import path from "path"; // eslint-disable-next-line @typescript-eslint/no-explicit-any const viteManifestHackIssue846: Plugin & { renderCrxManifest: (manifest: unknown, bundle: any) => void; } = { // Workaround from https://github.com/crxjs/chrome-extension-tools/issues/846#issuecomment-1861880919. name: "manifestHackIssue846", renderCrxManifest(_manifest, bundle) { bundle["manifest.json"] = bundle[".vite/manifest.json"]; bundle["manifest.json"].fileName = "manifest.json"; delete bundle[".vite/manifest.json"]; }, }; export default defineConfig({ plugins: [react(), crx({ manifest }), viteManifestHackIssue846], resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, });