Files
llink/js/desktop/vite.web.config.mts
Arjun PatelandGitHub 64f02d1c3b feat: ship a web app (#218)
* feat(orion): add endpoint for link metadata

* refactor: cleanup comments

* wip: plumbing for building a web app

* setup deployment materials for web app

* fix(web): favicon
2026-05-26 15:37:35 -07:00

41 lines
1.5 KiB
TypeScript

import path from "path";
import { createRequire } from "module";
import tailwindcss from "@tailwindcss/vite";
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { defineEnv } from "./vite.env";
const require = createRequire(import.meta.url);
const pkg = require("./package.json") as { version: string };
// Web build target for the browser. Aliases swap the platform adapter, the
// router shell, and Sentry over to web variants. Electron build is untouched
// — see vite.renderer.config.mts.
export default defineConfig({
root: path.resolve(__dirname, "src/web"),
plugins: [react(), tailwindcss()],
resolve: {
// Exact-match regexes for the file-level swaps — `@/lib/platform` points at
// a file (`index.web.ts`), so a string-prefix alias would also swallow
// deeper paths like `@/lib/platform/desktop-only`. The generic `@` alias
// handles everything else.
alias: [
{ find: /^@\/lib\/platform$/, replacement: path.resolve(__dirname, "./src/lib/platform/index.web.ts") },
{ find: /^@\/lib\/sentry$/, replacement: path.resolve(__dirname, "./src/lib/sentry.web.ts") },
{ find: /^@\/lib\/router-shell$/, replacement: path.resolve(__dirname, "./src/lib/router-shell.web.tsx") },
{ find: "@", replacement: path.resolve(__dirname, "./src") },
],
},
define: {
...defineEnv,
__APP_VERSION__: JSON.stringify(pkg.version),
},
server: {
port: 5174,
},
build: {
outDir: path.resolve(__dirname, "dist-web"),
emptyOutDir: true,
},
});