Files
everyone-can-use-english/enjoy/vite.main.config.ts
an-lee ce47c8e138 Deps: upgrade deps & use ESM (#343)
* upgrade deps

* upgrade forge

* make app work in ESM

* fix CI
2024-02-23 16:03:39 +08:00

93 lines
2.3 KiB
TypeScript

import { viteStaticCopy } from "vite-plugin-static-copy";
import os from "os";
import path from "path";
import type { ConfigEnv, UserConfig } from "vite";
import { defineConfig, mergeConfig } from "vite";
import {
getBuildConfig,
getBuildDefine,
pluginHotRestart,
external,
} from "./vite.base.config";
// https://vitejs.dev/config
export default defineConfig((env) => {
const forgeEnv = env as ConfigEnv<"build">;
const { forgeConfigSelf } = forgeEnv;
const define = getBuildDefine(forgeEnv);
const config: UserConfig = {
build: {
lib: {
entry: forgeConfigSelf.entry!,
fileName: () => "[name].js",
formats: ["es"],
},
rollupOptions: {
external,
// external: [
// "axios",
// "child_process",
// "crypto",
// "fs-extra",
// "fs",
// "path",
// "sequelize",
// "umzug",
// "sqlite3",
// "fluent-ffmpeg",
// "ffmpeg-static",
// "@andrkrn/ffprobe-static",
// ],
},
commonjsOptions: {
transformMixedEsModules: true,
defaultIsModuleExports: true,
esmExternals: true,
},
},
plugins: [
pluginHotRestart("restart"),
viteStaticCopy({
targets: [
{
src: `lib/whisper.cpp/${
process.env.PACKAGE_OS_ARCH || os.arch()
}/${os.platform()}/*`,
dest: "lib/whisper",
},
{
src: `lib/whisper.cpp/models/*`,
dest: "lib/whisper/models",
},
{
src: `lib/youtubedr/${
process.env.PACKAGE_OS_ARCH || os.arch()
}/${os.platform()}/*`,
dest: "lib/youtubedr",
},
{
src: "src/main/db/migrations/*",
dest: "migrations",
},
{
src: "samples/*",
dest: "samples",
},
],
}),
],
define,
resolve: {
// Load the Node.js entry.
mainFields: ["module", "jsnext:main", "jsnext"],
alias: {
"@": path.resolve(__dirname, "./src"),
"@main": path.resolve(__dirname, "./src/main"),
"@commands": path.resolve(__dirname, "./src/commands"),
},
},
};
return mergeConfig(getBuildConfig(forgeEnv), config);
});