Files
everyone-can-use-english/enjoy/vite.renderer.config.ts
an-lee 76bee71750 Support document(epub) (#1160)
* add document model

* may add document

* document card

* basic document renderer

* may render epub

* basic layout

* handle book href

* refactor epub renderer

* refactor translate button

* toggle player

* cache/restore last read position

* refactor

* add more columns to speeches

* start shadow from document

* add compact layout for media shadow

* refactor

* refactor

* refactor

* add document config

* locales

* auto translate

* selected notify for update document

* refactor

* add document provider

* fix perf issue

* refactor

* refactor

* may toggle player

* clean

* refactor

* clean code

* auto play speech

* fix document config update

* refactor

* fix epub image

* fix epub image

* html document

* refactor

* ui

* save document source

* fix document source

* update document model

* cache translation remote

* update UI

* fix package

* refactor

* fix

* support text/markdown files

* fix auto speech
2024-11-08 22:00:57 +08:00

55 lines
1.4 KiB
TypeScript

import path from "path";
import react from "@vitejs/plugin-react";
import { viteStaticCopy } from "vite-plugin-static-copy";
import type { ConfigEnv, UserConfig } from "vite";
import { defineConfig } from "vite";
import { pluginExposeRenderer } from "./vite.base.config";
// https://vitejs.dev/config
export default defineConfig((env) => {
const forgeEnv = env as ConfigEnv<"renderer">;
const { root, mode, forgeConfigSelf } = forgeEnv;
const name = forgeConfigSelf.name ?? "";
return {
root,
mode,
base: "./",
build: {
outDir: `.vite/renderer/${name}`,
target: "esnext",
},
plugins: [
pluginExposeRenderer(name),
react(),
viteStaticCopy({
targets: [
{
src: "assets/*",
dest: "assets",
},
],
}),
],
resolve: {
preserveSymlinks: true,
alias: {
"@": path.resolve(__dirname, "./src"),
"@renderer": path.resolve(__dirname, "./src/renderer"),
"@commands": path.resolve(__dirname, "./src/commands"),
"vendor/pdfjs": path.resolve(
__dirname,
"./node_modules/foliate-js/vendor/pdfjs"
),
},
},
optimizeDeps: {
exclude: ["@ffmpeg/ffmpeg", "@ffmpeg/util"],
esbuildOptions: {
target: "esnext",
},
},
clearScreen: false,
} as UserConfig;
});