69 lines
1.8 KiB
TypeScript
69 lines
1.8 KiB
TypeScript
import { cloudflare } from "@cloudflare/vite-plugin";
|
|
import { PrimeVueResolver } from "@primevue/auto-import-resolver";
|
|
import vue from "@vitejs/plugin-vue";
|
|
import vueJsx from "@vitejs/plugin-vue-jsx";
|
|
import path from "node:path";
|
|
import unocss from "unocss/vite";
|
|
import Components from "unplugin-vue-components/vite";
|
|
import AutoImport from "unplugin-auto-import/vite";
|
|
import { defineConfig } from "vite";
|
|
import ssrPlugin from "./plugins/ssrPlugin";
|
|
import devServer from '@hono/vite-dev-server'
|
|
import { vitePluginSsrMiddleware } from "./plugins/vite-plugin-ssr-middleware";
|
|
export default defineConfig((env) => {
|
|
// console.log("env:", env, import.meta.env);
|
|
return {
|
|
plugins: [
|
|
unocss(),
|
|
vue(),
|
|
vueJsx(),
|
|
AutoImport({
|
|
imports: ["vue", "vue-router", "pinia"], // Common presets
|
|
dts: true, // Generate TypeScript declaration file
|
|
}),
|
|
Components({
|
|
dirs: ["src/components"],
|
|
extensions: ["vue", "tsx"],
|
|
dts: true,
|
|
dtsTsx: true,
|
|
directives: false,
|
|
resolvers: [PrimeVueResolver()],
|
|
}),
|
|
ssrPlugin(),
|
|
vitePluginSsrMiddleware({
|
|
entry: "src/index.tsx",
|
|
preview: path.resolve("dist/server/index.js"),
|
|
})
|
|
// devServer({
|
|
// entry: 'src/index.tsx',
|
|
// }),
|
|
// cloudflare(),
|
|
],
|
|
environments: {
|
|
ssr: {
|
|
build: {
|
|
outDir: "dist/server",
|
|
copyPublicDir: false,
|
|
rollupOptions: {
|
|
input: { index: "/src/index.tsx" },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
"@": path.resolve(__dirname, "./src"),
|
|
// "httpClientAdapter": path.resolve(__dirname, "./src/api/httpClientAdapter.server.ts")
|
|
},
|
|
},
|
|
optimizeDeps: {
|
|
exclude: ["vue"],
|
|
},
|
|
|
|
ssr: {
|
|
// external: ["vue"]
|
|
// noExternal: ["vue"],
|
|
},
|
|
};
|
|
});
|