ProzillaOS/packages/skins/vite.config.ts
2024-07-14 22:26:57 +02:00

60 lines
No EOL
1.3 KiB
TypeScript

import { defineConfig } from "vite";
import { resolve } from "path";
import react from "@vitejs/plugin-react-swc";
import dts from "vite-plugin-dts";
import { libInjectCss } from "vite-plugin-lib-inject-css";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
react(),
dts({
include: ["src"],
outDir: "./dist",
rollupTypes: true,
strictOutput: true
}),
libInjectCss(),
],
build: {
lib: {
entry: resolve(__dirname, "src/main.ts"),
formats: ["es"],
},
rollupOptions: {
external: ["react", "react/jsx-runtime"],
output: {
assetFileNames: "assets/[name][extname]",
entryFileNames: "[name].js",
chunkFileNames: "[name]-[hash].js",
manualChunks: undefined
},
plugins: [{
name: "test",
resolveId (source) {
if (source.endsWith(".css")) {
return source;
}
return null;
},
renderDynamicImport(options) {
const { targetModuleId } = options;
if (targetModuleId?.endsWith(".css")) {
const matches = targetModuleId.match(/(?<=\/)[a-zA-Z-]+(?=\.css$)/);
if (matches == null)
return;
const name = matches[0];
return {
left: "import(/*",
right: `*/"./assets/${name}.css")`
};
}
return null;
},
}]
},
sourcemap: true,
},
});