-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
40 lines (40 loc) · 1.2 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
/// <reference types="vitest" />
/// <reference types="vite/client" />
import { globSync } from "glob";
import { copyFileSync } from "node:fs";
import { resolve } from "path";
import { defineConfig } from "vite";
import dts from "vite-plugin-dts";
// https://vitejs.dev/guide/build.html#library-mode
export default defineConfig({
build: {
lib: {
entry: resolve(__dirname, "src/index.ts"),
name: "contrastrast",
fileName: "index",
},
},
plugins: [
dts({
afterBuild: () => {
// To pass publint (`npm x publint@latest`) and ensure the
// package is supported by all consumers, we must export types that are
// read as ESM. To do this, there must be duplicate types with the
// correct extension supplied in the package.json exports field.
const typeFiles = globSync("dist/**/*.d.ts");
typeFiles.forEach((typeDFilePath) => {
const typeDCtsFilePath = typeDFilePath.split(".d.ts")[0] + ".d.cts";
copyFileSync(typeDFilePath, typeDCtsFilePath);
});
},
include: ["src"],
}),
],
test: {
include: ["**/*.test.ts"],
globals: true,
coverage: {
provider: "istanbul",
},
},
});