Files
gitea-github-theme/vite.config.ts
2025-06-23 01:28:13 +08:00

54 lines
1.5 KiB
TypeScript

import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin";
import react from "@vitejs/plugin-react";
import linaria from "@wyw-in-js/vite";
import { Features } from "lightningcss";
import path from "path";
import { defineConfig } from "vite";
import { themeInput, themePlugin } from "./src/vite";
const devTheme = "dark"; // 开发模式仅打包单个颜色主题
const outDir = "dist"; // 输出目录
const themesDir = "themes"; // 颜色主题目录
export default defineConfig(({ mode }) => {
return {
resolve: {
alias: {
src: path.resolve(__dirname, "src"),
styles: path.resolve(__dirname, "styles"),
themes: path.resolve(__dirname, "themes"),
},
extensions: [".js", ".jsx", ".ts", ".tsx", ".css.ts"],
},
css: {
transformer: "lightningcss",
lightningcss: {
minify: true,
exclude: Features.LightDark, // 不生成 lightningcss 的主题变量
},
},
plugins: [
linaria({
include: ["**/*.{ts,tsx}"],
babelOptions: {
presets: ["@babel/preset-typescript", "@babel/preset-react"],
},
}),
react(),
vanillaExtractPlugin(),
themePlugin(),
],
build: {
cssMinify: "lightningcss",
cssCodeSplit: true,
outDir: outDir,
rollupOptions: {
input: themeInput(outDir, themesDir, devTheme, mode),
output: {
assetFileNames: "[name].[ext]",
},
},
},
};
});