Initial commit: Re-connected to Gitea
This commit is contained in:
78
packages/ui/vite.config.ts
Normal file
78
packages/ui/vite.config.ts
Normal file
@@ -0,0 +1,78 @@
|
||||
import { defineConfig } from "vite";
|
||||
import react from "@vitejs/plugin-react";
|
||||
import dts from "vite-plugin-dts";
|
||||
import { resolve } from "node:path";
|
||||
import tailwindcss from "@tailwindcss/vite";
|
||||
|
||||
export default defineConfig(({ mode }) => {
|
||||
const isProduction = mode === "production";
|
||||
|
||||
return {
|
||||
// React 核心插件
|
||||
plugins: [
|
||||
tailwindcss(),
|
||||
react(),
|
||||
dts({
|
||||
include: ["src/**/*"],
|
||||
exclude: ["src/**/*.test.ts", "src/**/*.stories.tsx"],
|
||||
outDir: "./dist",
|
||||
rollupTypes: true, // 合并类型声明文件
|
||||
}),
|
||||
],
|
||||
|
||||
// 路径别名与后缀配置
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": resolve(__dirname, "./src"),
|
||||
},
|
||||
extensions: [".ts", ".tsx", ".js", ".jsx", ".json"],
|
||||
},
|
||||
|
||||
// 纯 ES 模式打包配置(移除 UMD 相关)
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(__dirname, "./src/index.ts"),
|
||||
formats: ["es"], // 仅保留 ES 模块格式
|
||||
fileName: () => "index.es.js", // 固定 ES 模式文件名
|
||||
},
|
||||
rollupOptions: {
|
||||
// 排除 React 相关依赖(用户项目自行引入)
|
||||
external: ["react", "react-dom"],
|
||||
output: {
|
||||
compact: isProduction, // 生产环境压缩代码格式
|
||||
globals: {
|
||||
react: "React",
|
||||
"react-dom": "ReactDOM",
|
||||
},
|
||||
assetFileNames: (assetInfo) => {
|
||||
if (assetInfo.name && assetInfo.name.endsWith(".css")) {
|
||||
return "index.css";
|
||||
}
|
||||
return assetInfo.name || "[name].[ext]";
|
||||
},
|
||||
},
|
||||
// 移除:rollupOptions 下无效的 exclude 配置
|
||||
// exclude: ["example/**/*", "scripts/**/*"],
|
||||
},
|
||||
outDir: "./dist",
|
||||
cssCodeSplit: false,
|
||||
sourcemap: true,
|
||||
minify: isProduction ? "esbuild" : false,
|
||||
emptyOutDir: true,
|
||||
},
|
||||
|
||||
// TS 兼容配置
|
||||
esbuild: {
|
||||
ignoreAnnotations: true,
|
||||
// 移除:esbuild 下无效的 exclude 配置
|
||||
// exclude: ["example/**/*", "scripts/**/*"],
|
||||
},
|
||||
|
||||
// 新增:使用 Vite 官方支持的方式排除文件
|
||||
// 通过 optimizeDeps.exclude 排除依赖,通过 build.assetsInclude 反向控制,
|
||||
// 同时结合 tsconfig.json 的 exclude 确保 TS 编译也排除目标文件
|
||||
optimizeDeps: {
|
||||
exclude: ["example", "scripts"],
|
||||
},
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user