|
1 | 1 | import { defineConfig } from "vite"; |
2 | 2 | import react from "@vitejs/plugin-react-swc"; |
3 | 3 | import tailwindcss from "@tailwindcss/vite"; |
4 | | -import { resolve } from "path"; |
5 | 4 |
|
6 | | -// https://vite.dev/config/ |
7 | | -export default defineConfig(({ mode }) => |
8 | | - mode === "injected" |
9 | | - ? { |
10 | | - build: { |
11 | | - emptyOutDir: false, |
12 | | - lib: { |
13 | | - entry: resolve(__dirname, "src/injected/injected.ts"), |
14 | | - name: "injected", |
15 | | - fileName: () => "injected.js", |
16 | | - formats: ["iife"], |
17 | | - }, |
18 | | - rollupOptions: { |
19 | | - output: { |
20 | | - extend: true, |
21 | | - }, |
22 | | - }, |
23 | | - }, |
24 | | - } |
25 | | - : { |
26 | | - plugins: [react(), tailwindcss()], |
27 | | - build: { |
28 | | - rollupOptions: { |
29 | | - input: { |
30 | | - // DevTools panel (React app) |
31 | | - panel: "index.html", |
32 | | - // DevTools entry point |
33 | | - devtools: "devtools.html", |
34 | | - // Content script |
35 | | - content: "src/content/content.ts", |
36 | | - // Background service worker |
37 | | - background: "src/background/background.ts", |
38 | | - }, |
39 | | - output: { |
40 | | - entryFileNames: (chunkInfo) => { |
41 | | - if (chunkInfo.name === "content") return "content.js"; |
42 | | - if (chunkInfo.name === "background") return "background.js"; |
43 | | - return "assets/[name]-[hash].js"; |
44 | | - }, |
45 | | - chunkFileNames: "assets/[name]-[hash].js", |
46 | | - assetFileNames: "assets/[name]-[hash].[ext]", |
47 | | - }, |
48 | | - }, |
| 5 | +export default defineConfig({ |
| 6 | + plugins: [react(), tailwindcss()], |
| 7 | + build: { |
| 8 | + rollupOptions: { |
| 9 | + input: { |
| 10 | + // DevTools panel (React app) |
| 11 | + panel: "index.html", |
| 12 | + // DevTools entry point |
| 13 | + devtools: "devtools.html", |
| 14 | + // Content script |
| 15 | + content: "src/content/content.ts", |
| 16 | + // Background service worker |
| 17 | + background: "src/background/background.ts", |
| 18 | + injected: "src/injected/injected.ts", |
| 19 | + }, |
| 20 | + output: { |
| 21 | + entryFileNames: (chunkInfo) => { |
| 22 | + switch (chunkInfo.name) { |
| 23 | + case "content": |
| 24 | + return "content.js"; |
| 25 | + case "background": |
| 26 | + return "background.js"; |
| 27 | + case "injected": |
| 28 | + return "injected.js"; |
| 29 | + default: |
| 30 | + return "assets/[name]-[hash].js"; |
| 31 | + } |
49 | 32 | }, |
| 33 | + chunkFileNames: ({ name }) => |
| 34 | + name === "serialization" |
| 35 | + ? "assets/serialization.js" |
| 36 | + : "assets/[name]-[hash].js", |
| 37 | + assetFileNames: "assets/[name]-[hash].[ext]", |
50 | 38 | }, |
51 | | -); |
| 39 | + }, |
| 40 | + }, |
| 41 | +}); |
0 commit comments