-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
48 lines (45 loc) · 1.12 KB
/
vite.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import path from "node:path";
import { fileURLToPath } from "node:url";
import { glob } from "glob";
import { defineConfig } from "vitest/config";
import { LibraryFormats } from "vite";
import dts from "vite-plugin-dts";
import pkg from "./package.json";
const EXCLUDE_PATH_LIST = ["src/**/*.test.*", "src/_common/**"];
const entry = Object.fromEntries(
glob
.sync("src/**/*.ts", {
ignore: EXCLUDE_PATH_LIST,
})
.map((file) => [
path.relative(
"src",
file.slice(0, file.length - path.extname(file).length)
),
fileURLToPath(new URL(file, import.meta.url)),
])
);
export default defineConfig({
plugins: [dts({ outDir: "dist/types", exclude: EXCLUDE_PATH_LIST })],
build: {
outDir: "dist",
lib: {
entry,
formats: ["es", "cjs"] as LibraryFormats[],
fileName(format, entryName) {
return `${format}/${entryName}.js`;
},
name: pkg.name,
},
rollupOptions: {
output: {
chunkFileNames(chunkInfo) {
return `lib/${chunkInfo.name}-[hash].js`;
},
},
},
},
test: {
globals: true,
},
});