You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

133 lines
3.9 KiB

// electron.vite.config.ts
import { resolve } from "path";
import { defineConfig, externalizeDepsPlugin } from "electron-vite";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import UnoCSS from "unocss/vite";
import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import VueMacros from "unplugin-vue-macros/vite";
import { VueRouterAutoImports } from "unplugin-vue-router";
import VueRouter from "unplugin-vue-router/vite";
import Layouts from "vite-plugin-vue-layouts";
import VueI18nPlugin from "@intlify/unplugin-vue-i18n/vite";
import monacoEditorPlugin from "vite-plugin-monaco-editor";
import IconsResolver from "unplugin-icons/resolver";
import Icons from "unplugin-icons/vite";
var __electron_vite_injected_dirname = "D:\\@code\\xyx\\electron-app";
var electron_vite_config_default = defineConfig({
main: {
resolve: {
alias: {
config: resolve("config"),
main: resolve("src/main"),
common: resolve("src/common"),
"@res": resolve("resources")
}
},
plugins: [externalizeDepsPlugin()]
},
preload: {
build: {
lib: {
entry: {
index: resolve(__electron_vite_injected_dirname, "./src/preload/index.ts"),
plugin: resolve(__electron_vite_injected_dirname, "./src/preload/plugin.ts")
}
}
},
plugins: [externalizeDepsPlugin()]
},
renderer: {
root: resolve(__electron_vite_injected_dirname, "./src/renderer"),
resolve: {
alias: {
config: resolve("config"),
common: resolve("src/common"),
"@": resolve("src/renderer/src"),
"@res": resolve("resources")
}
},
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "@/assets/style/global" as *;
`,
api: "modern-compiler"
}
}
},
build: {
rollupOptions: {
input: {
main: resolve(__electron_vite_injected_dirname, "./src/renderer/index.html"),
about: resolve(__electron_vite_injected_dirname, "./src/renderer/about.html")
}
}
},
plugins: [
UnoCSS(),
VueMacros({
plugins: {
vue: vue(),
vueJsx: vueJsx(),
vueRouter: VueRouter({
root: resolve(__electron_vite_injected_dirname, "src/renderer"),
// https://github.com/posva/unplugin-vue-router
extensions: [".vue", ".setup.tsx"],
exclude: ["**/_ui"]
})
}
}),
VueI18nPlugin({
compositionOnly: false,
include: resolve(__electron_vite_injected_dirname, "packages/locales/languages/**")
}),
Layouts({
layoutsDirs: "src/layouts",
pagesDirs: "src/pages",
defaultLayout: "default",
extensions: ["vue", "setup.tsx"],
exclude: ["**/_ui"]
}),
// https://github.com/antfu/unplugin-auto-import
AutoImport({
imports: [
"vue",
"@vueuse/core",
VueRouterAutoImports,
{
// add any other imports you were relying on
"vue-router/auto": ["useLink"]
},
"vue-i18n"
],
dts: true,
dirs: ["src/composables"],
vueTemplate: true
}),
// https://github.com/antfu/vite-plugin-components
Components({
dts: true,
dirs: ["src/components", "src/ui"],
resolvers: [
IconsResolver({
prefix: "icon"
})
]
}),
Icons(),
// https://wf0.github.io/example/plugins/Formatter.html
// @ts-ignore ...
monacoEditorPlugin.default({
publicPath: "monacoeditorwork",
customDistPath() {
return resolve(__electron_vite_injected_dirname, "out/renderer/monacoeditorwork");
}
})
]
}
});
export {
electron_vite_config_default as default
};