mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-27 23:13:03 +00:00
79 lines
2.8 KiB
TypeScript
79 lines
2.8 KiB
TypeScript
import { defineConfig } from "vite";
|
|
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
import istanbul from "vite-plugin-istanbul";
|
|
import { fileURLToPath, fs, path } from "@vrtmrz/livesync-commonlib/node";
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const repoRoot = path.resolve(__dirname, "../../..");
|
|
|
|
function readVersion(filePath: string): string | undefined {
|
|
const parsed: unknown = JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
if (typeof parsed !== "object" || parsed === null || !("version" in parsed)) {
|
|
return undefined;
|
|
}
|
|
return typeof parsed.version === "string" ? parsed.version : undefined;
|
|
}
|
|
|
|
const packageVersion = readVersion(path.resolve(repoRoot, "package.json"));
|
|
const manifestVersion = readVersion(path.resolve(repoRoot, "manifest.json"));
|
|
const enableCoverage = process.env.PW_COVERAGE === "1";
|
|
// https://vite.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
svelte(),
|
|
...(enableCoverage
|
|
? [
|
|
istanbul({
|
|
cwd: repoRoot,
|
|
include: ["src/**/*.ts", "src/**/*.svelte"],
|
|
exclude: [
|
|
"node_modules",
|
|
"dist",
|
|
"test",
|
|
"coverage",
|
|
"src/apps/webapp/test/**",
|
|
"playwright.config.ts",
|
|
"vite.config.ts",
|
|
"**/*.spec.ts",
|
|
"**/*.test.ts",
|
|
],
|
|
extension: [".js", ".ts", ".svelte"],
|
|
requireEnv: false,
|
|
cypress: false,
|
|
checkProd: false,
|
|
}),
|
|
]
|
|
: []),
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
"@": path.resolve(__dirname, "../../"),
|
|
obsidian: path.resolve(__dirname, "./obsidianMock.ts"),
|
|
},
|
|
},
|
|
base: "./",
|
|
build: {
|
|
outDir: "dist",
|
|
emptyOutDir: true,
|
|
rollupOptions: {
|
|
// test.html is used by the Playwright dev-server; include it here
|
|
// so the production build doesn't emit warnings about unused inputs.
|
|
input: {
|
|
index: path.resolve(__dirname, "index.html"),
|
|
webapp: path.resolve(__dirname, "webapp.html"),
|
|
test: path.resolve(__dirname, "test.html"),
|
|
},
|
|
external: ["crypto"],
|
|
},
|
|
},
|
|
define: {
|
|
MANIFEST_VERSION: JSON.stringify(process.env.MANIFEST_VERSION || manifestVersion || "0.0.0"),
|
|
PACKAGE_VERSION: JSON.stringify(process.env.PACKAGE_VERSION || packageVersion || "0.0.0"),
|
|
global: "globalThis",
|
|
hostPlatform: JSON.stringify(process.platform || "linux"),
|
|
},
|
|
server: {
|
|
port: 3000,
|
|
open: true,
|
|
},
|
|
});
|