mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-25 22:12:59 +00:00
Fixed an issue where the StorageEventManager
Build by Vite is now testing
This commit is contained in:
+163
-3
@@ -1,4 +1,164 @@
|
||||
import { defineConfig, mergeConfig } from "vitest/config";
|
||||
import viteConfig from "./vitest.config.common";
|
||||
import { defineConfig } from "vitest/config";
|
||||
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
||||
import { sveltePreprocess } from "svelte-preprocess";
|
||||
import inlineWorkerPlugin from "esbuild-plugin-inline-worker";
|
||||
import copy from "rollup-plugin-copy";
|
||||
import path from "path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import fs from "node:fs";
|
||||
import { platform } from "node:process";
|
||||
|
||||
export default mergeConfig(viteConfig, defineConfig({}));
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
const manifestJson = JSON.parse(fs.readFileSync("./manifest.json") + "");
|
||||
const packageJson = JSON.parse(fs.readFileSync("./package.json") + "");
|
||||
const updateInfo = JSON.stringify(fs.readFileSync("./updates.md") + "");
|
||||
|
||||
// const moduleAliasPlugin = {
|
||||
// name: "module-alias",
|
||||
// setup(build: any) {
|
||||
// build.onResolve({ filter: /.(dev)(.ts|)$/ }, (args: any) => {
|
||||
// // console.log(args.path);
|
||||
// if (prod) {
|
||||
// const prodTs = args.path.replace(".dev", ".prod");
|
||||
// const statFile = prodTs.endsWith(".ts") ? prodTs : prodTs + ".ts";
|
||||
// const realPath = path.join(args.resolveDir, statFile);
|
||||
// console.log(`Checking ${statFile}`);
|
||||
// if (fs.existsSync(realPath)) {
|
||||
// console.log(`Replaced ${args.path} with ${prodTs}`);
|
||||
// return {
|
||||
// path: realPath,
|
||||
// namespace: "file",
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// return null;
|
||||
// });
|
||||
// build.onResolve({ filter: /.(platform)(.ts|)$/ }, (args: any) => {
|
||||
// // console.log(args.path);
|
||||
// if (prod) {
|
||||
// const prodTs = args.path.replace(".platform", ".obsidian");
|
||||
// const statFile = prodTs.endsWith(".ts") ? prodTs : prodTs + ".ts";
|
||||
// const realPath = path.join(args.resolveDir, statFile);
|
||||
// console.log(`Checking ${statFile}`);
|
||||
// if (fs.existsSync(realPath)) {
|
||||
// console.log(`Replaced ${args.path} with ${prodTs}`);
|
||||
// return {
|
||||
// path: realPath,
|
||||
// namespace: "file",
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
// return null;
|
||||
// });
|
||||
// },
|
||||
// };
|
||||
const externals = [
|
||||
"obsidian",
|
||||
"electron",
|
||||
"crypto",
|
||||
"@codemirror/autocomplete",
|
||||
"@codemirror/collab",
|
||||
"@codemirror/commands",
|
||||
"@codemirror/language",
|
||||
"@codemirror/lint",
|
||||
"@codemirror/search",
|
||||
"@codemirror/state",
|
||||
"@codemirror/view",
|
||||
"@lezer/common",
|
||||
"@lezer/highlight",
|
||||
"@lezer/lr",
|
||||
];
|
||||
const define = {
|
||||
MANIFEST_VERSION: `"${manifestJson.version}"`,
|
||||
PACKAGE_VERSION: `"${packageJson.version}"`,
|
||||
UPDATE_INFO: `${updateInfo}`,
|
||||
global: "globalThis",
|
||||
hostPlatform: `"${platform}"`,
|
||||
};
|
||||
const PATHS_TEST_INSTALL = process.env?.PATHS_TEST_INSTALL || "";
|
||||
const PATH_TEST_INSTALL = PATHS_TEST_INSTALL.split(path.delimiter)
|
||||
.map((p) => p.trim())
|
||||
.filter((p) => p.length);
|
||||
if (PATH_TEST_INSTALL) {
|
||||
console.log(`Built files will be copied to ${PATH_TEST_INSTALL}`);
|
||||
} else {
|
||||
console.log(
|
||||
"Development build: You can install the plug-in to Obsidian for testing by exporting the PATHS_TEST_INSTALL environment variable with the paths to your vault plugins directories separated by your system path delimiter (':' on Unix, ';' on Windows)."
|
||||
);
|
||||
}
|
||||
import { terserOption } from "./terser_vite.config";
|
||||
export default defineConfig(({ mode }) => {
|
||||
|
||||
const prod = mode === "production" || mode === "original";
|
||||
let minify = prod ? "terser" : false;
|
||||
let outFile = `main_vite.${prod ? "prod" : "dev"}.js`;
|
||||
if (mode == "original") {
|
||||
console.log("Building original unminified version");
|
||||
minify = false;
|
||||
outFile = `main_vite.original.js`;
|
||||
}
|
||||
outFile = `main.js`;
|
||||
return {
|
||||
plugins: [
|
||||
// moduleAliasPlugin,
|
||||
inlineWorkerPlugin({
|
||||
external: externals,
|
||||
treeShaking: true,
|
||||
}),
|
||||
svelte({
|
||||
preprocess: sveltePreprocess(),
|
||||
compilerOptions: { css: "injected", preserveComments: false },
|
||||
}),
|
||||
|
||||
copy({
|
||||
targets: ["manifest.json", "main.js", "styles.css"]
|
||||
.map((file) => PATH_TEST_INSTALL.map((dest) => ({ src: file, dest: dest })))
|
||||
.flat(),
|
||||
// Copy after the build is complete
|
||||
hook: "writeBundle",
|
||||
verbose: true,
|
||||
}),
|
||||
],
|
||||
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": path.resolve(__dirname, "./src"),
|
||||
"@lib": path.resolve(__dirname, "./src/lib/src"),
|
||||
src: path.resolve(__dirname, "./src"),
|
||||
},
|
||||
},
|
||||
build: {
|
||||
target: 'es2018',
|
||||
commonjsOptions: {},
|
||||
lib: {
|
||||
entry: path.resolve(__dirname, "src/main.ts"),
|
||||
name: "main",
|
||||
fileName: () => outFile,
|
||||
formats: ["cjs"], //
|
||||
},
|
||||
rollupOptions: {
|
||||
external: externals,
|
||||
output: {
|
||||
globals: {
|
||||
obsidian: "obsidian",
|
||||
electron: "electron",
|
||||
},
|
||||
entryFileNames: outFile,
|
||||
inlineDynamicImports: true,
|
||||
manualChunks: undefined,
|
||||
},
|
||||
},
|
||||
minify: minify ? "terser" : false,
|
||||
// minify:false,
|
||||
terserOptions: terserOption,
|
||||
outDir: ".",
|
||||
emptyOutDir: false,
|
||||
sourcemap: prod ? false : "hidden",
|
||||
},
|
||||
define: define,
|
||||
worker: {
|
||||
format: "iife",
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user