chore: use dist as the single extension output dir

This commit is contained in:
admin123 2026-05-25 14:33:52 +08:00
parent f683b1db4f
commit d7b35d6149
7 changed files with 36 additions and 16 deletions

View File

@ -21,9 +21,7 @@
- `src/`
- 插件源码
- `dist/`
- 开发构建产物
- `dist-release/`
- 内部分发构建产物
- 开发和发布构建产物
- `release/`
- 打包后的内部交付压缩包
- `docs/`
@ -84,7 +82,7 @@ npm run write:latest
生成结果:
- 构建目录:`dist-release/`
- 构建目录:`dist/`
- 压缩包:`release/star-chart-search-enhancer-internal.zip`
- 更新清单:`release/latest.json`

View File

@ -40,10 +40,10 @@ git clone https://git.internal.intelligrow.cn/wangshaoqing/star-chart-search-enh
4. 点击 **"加载已解压的扩展程序"**
5. 选择桌面上的这个路径:
```
star-chart-search-enhancer/dist-release/
star-chart-search-enhancer/dist/
```
⚠️ **重要**:必须选择 `dist-release` 这个子文件夹,不要选外层文件夹
⚠️ **重要**:必须选择 `dist` 这个子文件夹,不要选外层文件夹
✅ 安装成功!你会看到插件卡片。
@ -109,7 +109,7 @@ npm run build:release
⚠️ **如果重新加载后还是旧版本**
- 先点击插件卡片的 **"移除"** 删除旧版本
- 然后重新点击 **"加载已解压的扩展程序"**
- 再次选择 `dist-release` 文件夹
- 再次选择 `dist` 文件夹
---
@ -118,11 +118,11 @@ npm run build:release
**Q: 提示 "git 不是内部或外部命令"**
A: Git 没装好,请先安装 Git。
**Q: 下载后找不到 dist-release 文件夹?**
A: 请确认下载的是最新版本,可以重新执行 `git pull`
**Q: 下载后找不到 dist 文件夹?**
A: 请确认下载的是最新版本,可以重新执行 `git pull` 并重新执行 `npm run build:release`
**Q: 加载后扩展 ID 不对?**
A: 请检查是否选择了 `dist-release` 文件夹,而不是外层文件夹。
A: 请检查是否选择了 `dist` 文件夹,而不是外层文件夹。
---

View File

@ -0,0 +1,5 @@
import path from "node:path";
export function resolveExtensionBuildDir(projectRoot, _buildTarget) {
return path.join(projectRoot, "dist");
}

View File

@ -3,15 +3,13 @@ import path from "node:path";
import { fileURLToPath } from "node:url";
import { build } from "tsup";
import { createManifest } from "./manifest.mjs";
import { resolveExtensionBuildDir } from "./build-output-path.mjs";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const projectRoot = path.resolve(__dirname, "..");
const buildTarget = process.env.BUILD_TARGET === "release" ? "release" : "development";
const distDir = path.join(
projectRoot,
buildTarget === "release" ? "dist-release" : "dist"
);
const distDir = resolveExtensionBuildDir(projectRoot, buildTarget);
await rm(distDir, { recursive: true, force: true });
await mkdir(path.join(distDir, "content"), { recursive: true });

View File

@ -2,10 +2,11 @@ import { mkdir, rm } from "node:fs/promises";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { createReleaseArchive } from "./package-release-archive.mjs";
import { resolveExtensionBuildDir } from "./build-output-path.mjs";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const projectRoot = path.resolve(__dirname, "..");
const sourceDir = path.join(projectRoot, "dist-release");
const sourceDir = resolveExtensionBuildDir(projectRoot, "release");
const releaseDir = path.join(projectRoot, "release");
const archivePath = path.join(
releaseDir,

View File

@ -0,0 +1,18 @@
import path from "node:path";
import { describe, expect, test } from "vitest";
import { resolveExtensionBuildDir } from "../scripts/build-output-path.mjs";
describe("build-output-path", () => {
test("uses dist for release builds", () => {
expect(resolveExtensionBuildDir("/repo", "release")).toBe(
path.join("/repo", "dist")
);
});
test("uses dist for development builds", () => {
expect(resolveExtensionBuildDir("/repo", "development")).toBe(
path.join("/repo", "dist")
);
});
});