Browse Source

清理废弃配置并优化热更新模块

- 删除废弃的 `electron.vite.config.1749712333417.mjs` 配置文件,该文件已被新版配置替代。
- 重构热更新模块 `packages/helper/updater/main/hot/index.ts`,移除事件发射机制,改为通过回调函数传递进度信息。
- 调整 `tsconfig.node.json` 排除规则,将 `packages/renderer/**/*` 修改为更精确的 `packages/**/renderer/**/*`。
- 更新 `tsconfig.web.json` 包含规则,新增 `packages/**/renderer/**/*` 路径以支持渲染进程代码编译。
main
谢亚昕 5 days ago
parent
commit
e65a967244
  1. 133
      electron.vite.config.1749712333417.mjs
  2. 5
      packages/helper/updater/main/hot/index.ts
  3. 2
      tsconfig.node.json
  4. 1
      tsconfig.web.json

133
electron.vite.config.1749712333417.mjs

@ -1,133 +0,0 @@
// 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
};

5
packages/helper/updater/main/hot/index.ts

@ -7,7 +7,6 @@ import download from "./download"
import extract from "extract-zip"
import _logger from "logger/main"
import { emit } from "../handler"
const logger = _logger.createNamespace("hot-updater")
@ -73,7 +72,7 @@ app.once("will-quit", event => {
})
// 下载热更新包
export async function fetchHotUpdatePackage(updatePackageUrl: string) {
export async function fetchHotUpdatePackage(updatePackageUrl: string, onProgress?: (percent: number, now: number, all: number) => void) {
if (isReadyUpdate) return
// 清除临时目录
@ -92,7 +91,7 @@ export async function fetchHotUpdatePackage(updatePackageUrl: string) {
url: updatePackageUrl,
onprocess(now, all) {
logger.debug(`下载进度: ${((now / all) * 100).toFixed(2)}%`)
emit("update-progress", { percent: (now / all) * 100, now, all })
onProgress && onProgress((now / all) * 100, now, all)
},
})
fs.writeFileSync(downloadPath, Buffer.from(arrayBuffer))

2
tsconfig.node.json

@ -27,7 +27,7 @@
"src/common/**/common.ts"
],
"exclude": [
"packages/renderer/**/*",
"packages/**/renderer/**/*",
],
"compilerOptions": {
"composite": true,

1
tsconfig.web.json

@ -15,6 +15,7 @@
"./typed-router.d.ts",
"src/common/**/*",
"packages/**/*",
"packages/**/renderer/**/*",
],
"exclude": [
"packages/locales/main.ts",

Loading…
Cancel
Save