1 | import { resolve } from "path";
|
2 | import { defineConfig } from "vite";
|
3 | import packageJson from "./package.json";
|
4 |
|
5 | const getPackageName = () => {
|
6 | return packageJson.name;
|
7 | };
|
8 |
|
9 | const 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 |
|
20 | const fileName = {
|
21 | es: `${getPackageName()}.mjs`,
|
22 | cjs: `${getPackageName()}.cjs`,
|
23 | iife: `${getPackageName()}.iife.js`
|
24 | };
|
25 |
|
26 | module.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 |