# 怎么拿到 dsh-pylon-trae(三种方式) > 上游仓库:(公开仓库 —— 市场要从 `raw.githubusercontent.com` > 取 README,私有仓库取不到)。 > 三种方式装的是**同一份代码**;差别只在"从哪拿"和"拿不拿得到"。 --- ## 方式一:GitHub 仓库直装(现在就能用) 插件的安装目标是一个 pnpm 的 GitHub 源,规范写法是 `github:rumilhz/dsh-pylon-trae`。 - 在 DSH 里从 GitHub 源添加插件(不同 DSH 版本入口略有差异,CLI 侧是 `dsh plugin add`, 具体语法以你所用版本的 `dsh plugin add --help` 为准)。 - 手工源码目录方式(开发本仓时用):`node install.mjs`(无参数)走"源码目录 link",改代码即时生效。 - 这条路的**代价**:仓库默认分支上是什么就装什么;没有预构建产物,装的时候要跑一遍 本仓的安装脚本(pnpm 会要求 `allowBuilds` 授权)。 ## 方式二:插件市场搜索安装(**已提交精选列表 · 未合并前不可用**) > ⛔ **现在在市场里搜不到。** 这一条只是把路铺好:条目已/将提交到精选列表, > **必须等那边的 PR 被合并**,市场才会出现本插件。合并前请走方式一或方式三。 DSH 插件市场读的是**远程精选列表** `https://awesome-dsh-plugin.com/plugins.json`, 它的源仓库是 。 **市场只允许安装该精选列表内的来源** —— 所以本插件在收录 PR 合并之前,**在市场里搜不到**。 - 收录形态:一个文件 `data/plugins/__.yml`,本插件要提的就是 `data/plugins/rumilhz__dsh-pylon-trae.yml`。 - 收录门槛(对方 `contributing.md` 的硬要求): 1. `package.json` 声明 **`dsh.bundle`**(只有 `dsh.client` 无法安装)—— 本仓已满足; 2. 仓库**创建满 1 天**(CI 自动检查,新仓库当天提 PR 会被拒); 3. 仓库打了 **`dsh-plugin`** topic; 4. 描述只说功能、不带营销词,且必须与代码相符。 - 合并后网站自动重建,无需再动别的东西。 ## 方式三:tgz 发布包(`dist\`,离线可用) ```bat :: 打一个发布包(同时产出 .sha256 与 .manifest.txt 两个校验文件) node tools\pack.mjs :: 同名重打要显式加 --force(默认拒绝覆盖:同名两套字节最难查) node tools\pack.mjs --force ``` 产物落在 `dist\`:`dsh-pylon-trae-.tgz` + `.sha256` + `.manifest.txt`。 拷到目标机器后: ```bat tar -xzf dsh-pylon-trae-.tgz cd package node tools\doctor.ts :: 自检(只读):✅ 可以装 / ⚠️ 要判断 / ❌ 先解决 node install.mjs --from ..\dsh-pylon-trae-.tgz :: 然后完全退出 DSH,再打开 ``` `install.mjs --from` 会拿 `.sha256` 与 `.manifest.txt` 核对装配 sha256,核对不过就拒绝安装。 > `dist/` **不进 git**(已在 `.gitignore` 里):发布包是构建产物,用 `node tools\pack.mjs` 随时重建。 --- ## 三种方式对照 | | 现在可用? | 需要联网 | 预构建 | 适合谁 | |---|---|---|---|---| | 方式一 GitHub 直装 | ✅ 是 | 是 | 否(装时跑安装脚本) | 想跟最新代码的人 | | 方式二 市场安装 | ⛔ **未合并前不可用**(已/将提交精选列表) | 是 | 视条目而定 | 普通用户(最省事) | | 方式三 tgz | ✅ 是 | 否(可离线) | 是 | 新电脑 / 离线环境 / 要可核对字节 | --- ## 四硬前提(三种方式都一样) | # | 前提 | 不满足会怎样 | 怎么确认 | |---|---|---|---| | 1 | **Trae 已在本机登录**(桌面端最省事,CLI 也算) | 插件起来了但没有模型,报"没有可用凭据" | `node tools\doctor.ts` 里的「凭据」段 | | 2 | **7864 端口空闲**(CN;国际版是 7865) | 插件的回环服务起不来,等于没有通道 | doctor 会报占用者的 **PID 与进程名** | | 3 | **profile 里不挂 `dsh-connect-trae`** | 两条 Trae 抢同一个路由 id(`trae` / `trae-global`) | doctor 会明确警告;`install.mjs` 会替你从 bundles 摘掉它(依赖与磁盘保留) | | 4 | **Windows** | macOS / Linux 的代码结构在,但**没实测** | 非 Windows 时 doctor 直接报 ❌ 并说"未实测"(确要试:加 `--allow-untested-platform`) | > **只装不启**:`install.mjs` 不会替你启动或重启 DSH。装完必须**自己完全退出 DSH 再打开**(刷新页面不算)。