From b7da3ae95743a30fef3825d7fdc806a08e337147 Mon Sep 17 00:00:00 2001 From: "shi.changliang" Date: Thu, 4 Jun 2026 14:20:14 +0800 Subject: [PATCH] Keep build artifacts in dist --- .gitignore | 2 -- README.md | 28 ++++++++++++++++++++++++++-- package.json | 1 + scripts/install-plugin.mjs | 19 +++++++++++++++++++ vite.config.ts | 12 ------------ 5 files changed, 46 insertions(+), 16 deletions(-) create mode 100644 scripts/install-plugin.mjs diff --git a/.gitignore b/.gitignore index 1af2985..56ad679 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,4 @@ node_modules/ dist/ -/main.js -/styles.css *.hot-update.* .DS_Store diff --git a/README.md b/README.md index 6dce690..975d834 100644 --- a/README.md +++ b/README.md @@ -43,8 +43,32 @@ pnpm 构建产物: ```text -main.js -styles.css +dist/main.js +dist/main.css +``` + +安装到 Obsidian 时,需要复制: + +```text +manifest.json +dist/main.js +dist/main.css +``` + +到目标 vault 的插件目录,并把 `dist/main.css` 放置为 Obsidian 识别的 `styles.css`: + +```text +/.obsidian/plugins/obsync/ + manifest.json + main.js + styles.css +``` + +也可以使用安装脚本: + +```bash +pnpm run build +pnpm install-plugin "/path/to/your-vault" ``` ## 插件 ID diff --git a/package.json b/package.json index cac6ad3..720c868 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "vite build --watch", "build": "tsc --noEmit --skipLibCheck && vite build", + "install-plugin": "node scripts/install-plugin.mjs", "test": "vitest run" }, "keywords": [ diff --git a/scripts/install-plugin.mjs b/scripts/install-plugin.mjs new file mode 100644 index 0000000..06c873e --- /dev/null +++ b/scripts/install-plugin.mjs @@ -0,0 +1,19 @@ +import { copyFileSync, mkdirSync } from "node:fs"; +import { join, resolve } from "node:path"; + +const vaultPath = process.argv[2]; + +if (!vaultPath) { + console.error("Usage: pnpm install-plugin "); + process.exit(1); +} + +const pluginDir = join(resolve(vaultPath), ".obsidian", "plugins", "obsync"); +mkdirSync(pluginDir, { recursive: true }); + +copyFileSync("manifest.json", join(pluginDir, "manifest.json")); +copyFileSync("dist/main.js", join(pluginDir, "main.js")); +copyFileSync("dist/main.css", join(pluginDir, "styles.css")); + +console.log(`Installed Obsync to ${pluginDir}`); + diff --git a/vite.config.ts b/vite.config.ts index 17ed205..c6c1dff 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,4 +1,3 @@ -import { copyFileSync, existsSync } from "node:fs"; import { builtinModules } from "node:module"; import tailwindcss from "@tailwindcss/vite"; import vue from "@vitejs/plugin-vue"; @@ -24,17 +23,6 @@ export default defineConfig({ plugins: [ vue(), tailwindcss(), - { - name: "copy-obsidian-plugin-bundle", - closeBundle() { - if (existsSync("dist/main.js")) { - copyFileSync("dist/main.js", "main.js"); - } - if (existsSync("dist/main.css")) { - copyFileSync("dist/main.css", "styles.css"); - } - }, - }, ], build: { lib: {