UNPKG

875 BPlain TextView Raw
1import { resolve } from "path";
2import { defineConfig } from "vite";
3import packageJson from "./package.json";
4
5const getPackageName = () => {
6 return packageJson.name;
7};
8
9const getPackageNameCamelCase = () => {
10 try {
11 const packageName = getPackageName();
12 return (packageName.charAt(0).toLocaleUpperCase() + packageName.slice(1)).replace(/-./g, (char) =>
13 char[1].toUpperCase()
14 );
15 } catch (err) {
16 throw new Error("Name property in package.json is missing.");
17 }
18};
19
20const fileName = {
21 es: `${getPackageName()}.mjs`,
22 cjs: `${getPackageName()}.cjs`,
23 iife: `${getPackageName()}.iife.js`
24};
25
26module.exports = defineConfig({
27 base: "./",
28 build: {
29 lib: {
30 entry: resolve(__dirname, "src/index.ts"),
31 name: getPackageNameCamelCase(),
32 formats: ["es", "cjs", "iife"],
33 fileName: (format) => fileName[format]
34 }
35 }
36});
37
\No newline at end of file