From 5c0827f8a823f72122f8808d9274704b111c6d00 Mon Sep 17 00:00:00 2001 From: xeon <121710481@163.com> Date: Fri, 26 Dec 2025 16:16:25 +0800 Subject: [PATCH] chore: convert shell scripts to Node.js for cross-platform compatibility --- package.json | 4 ++-- postpackage.mjs | 13 +++++++++++++ prepackage.mjs | 19 +++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 postpackage.mjs create mode 100644 prepackage.mjs diff --git a/package.json b/package.json index c9d14c8..57d04ec 100644 --- a/package.json +++ b/package.json @@ -94,9 +94,9 @@ "typecheck": "tsc --noEmit", "typecheck:webview": "vue-tsc -p src/webview/tsconfig.json --noEmit", "typecheck:all": "pnpm run typecheck && pnpm run typecheck:webview", - "prepackage": "pnpm run build && cp README.md README.md.bak && sed -i '' 's|https://awesome.re/mentioned-badge.svg|assets/mentioned-badge.png|g' README.md", + "prepackage": "node prepackage.mjs", "package": "vsce package --no-dependencies", - "postpackage": "mv README.md.bak README.md", + "postpackage": "node postpackage.mjs", "lint": "eslint src --ext ts", "lint:fix": "eslint src --ext ts --fix", "format": "prettier --write \"src/**/*.{ts,tsx,vue}\" && eslint src --ext ts,tsx,vue --fix" diff --git a/postpackage.mjs b/postpackage.mjs new file mode 100644 index 0000000..55714fe --- /dev/null +++ b/postpackage.mjs @@ -0,0 +1,13 @@ +#!/usr/bin/env node +import fs from 'node:fs'; +import path from 'node:path'; + +const backupPath = path.join(process.cwd(), 'README.md.bak'); +const readmePath = path.join(process.cwd(), 'README.md'); + +// 恢复 README.md +if (fs.existsSync(backupPath)) { + fs.copyFileSync(backupPath, readmePath); + fs.unlinkSync(backupPath); + console.log('README.md restored'); +} diff --git a/prepackage.mjs b/prepackage.mjs new file mode 100644 index 0000000..da4a8f7 --- /dev/null +++ b/prepackage.mjs @@ -0,0 +1,19 @@ +#!/usr/bin/env node +import fs from 'node:fs'; +import path from 'node:path'; + +// 备份 README.md +const readmePath = path.join(process.cwd(), 'README.md'); +const backupPath = path.join(process.cwd(), 'README.md.bak'); + +if (fs.existsSync(backupPath)) { + fs.unlinkSync(backupPath); +} +fs.copyFileSync(readmePath, backupPath); + +// 替换 README 中的 SVG 链接为 PNG +let content = fs.readFileSync(readmePath, 'utf8'); +content = content.replaceAll('https://awesome.re/mentioned-badge.svg', 'assets/mentioned-badge.png'); +fs.writeFileSync(readmePath, content); + +console.log('README.md prepared for packaging');