npm 怎么更新 dsh?DeepSeek Harness 的 npm update -g 与 @latest 用法
npm 更新 dsh 有三条路,效果并不相同:npm update -g 只在已记录的版本范围内取最高、npm install -g @deepseek-ai/dsh@latest 才能跨大版本强制装最新、而 npx 方式要显式带 @latest 并留意本地缓存。 DSH插件 与 DeepSeek插件 走的是 dsh plugin 的插件通道,与这里讲的 DeepSeek Harness 本体更新是两回事,最后一节会区分。这篇把三条命令的适用场景、执行步骤与事后核对讲清。
npm 更新 dsh 本体的三条路:DSH plugin 的 update -g、@latest 与 npx
三条路的分工是:常规补丁升级走 npm update -g,要跨大版本走 npm install -g @deepseek-ai/dsh@latest,用 npx 临时运行的人则没有「已安装版本」可更新,只能每次都按 @latest 解析(来源)。 对照表:
| 你当前的用法 | 更新命令 | 关键限制 |
|---|---|---|
全局安装(npm i -g) | npm update -g @deepseek-ai/dsh | 只在已记录的语义化版本范围内升到最高,跨大版本升不上去 |
| 全局安装且要最新 | npm install -g @deepseek-ai/dsh@latest | 按 latest 标签重新解析并覆盖安装,可跨大版本 |
| 用 npx 临时运行 | npx @deepseek-ai/dsh@latest web | 没有常驻安装实体,可能命中 ~/.npm/_npx 里的旧缓存 |
| 源码克隆安装 | git pull 后重新构建 | 不走 npm,更新命令对这类安装无效 |
先确认自己属于哪一类:执行 npm ls -g @deepseek-ai/dsh,预期:有输出说明是全局安装;输出 (empty) 而你平时用 npx @deepseek-ai/dsh 启动,就属于第三类。
用 npm update -g 更新 DeepSeek Harness:什么时候够用、什么时候不够
npm update -g 的本质是「在已记录的版本范围内取最高」,所以小版本和补丁能升上去,跨大版本它不会动——这是它最容易被误判的地方(来源)。 四步执行并核对:
- 看当前装了什么 — 执行
npm ls -g @deepseek-ai/dsh。预期:输出一行版本号,即当前全局实装版本。 - 看有没有可升的 — 执行
npm outdated -g --depth=0。预期:若该包在列,Current 与 Latest 两列的值就是「现在」与「范围内/最新可用」的差距。 - 执行更新 — 执行
npm update -g @deepseek-ai/dsh。预期:命令正常结束、无报错;如果版本号没变且 Latest 明显更高,说明被版本范围挡住了,转下一节。 - 确认命令版本 — 执行
dsh --version。预期:输出新版本号。若这里仍是旧版,先别急着再更新,按本页第五节核对路径与源。
注意:npm update -g 不带包名时会把所有全局包一起更新,在不确定其他包依赖关系时不要这么跑。
强制装最新:用 @latest 跨大版本更新 DeepSeek Harness
要跨大版本或确保拿到最新稳定版,用 @latest 让 npm 按 latest 标签重新解析并覆盖安装,这是与 update -g 最本质的差别(来源)。 三步执行:
- 确认最新版是谁 — 执行
npm view @deepseek-ai/dsh version。预期:输出 registry 上的最新稳定版号,先记下来,待会要用它核对结果。 - 强制安装最新 — 执行
npm install -g @deepseek-ai/dsh@latest。预期:下载并覆盖安装,命令结束时显示的版本应与上一步一致。 - 验证生效 — 执行
dsh --version。预期:输出的版本与第 1 步记下的号一致,说明跨版本升级已完成。
顺带一个用途:把 @latest 换成确切版本号(如 @deepseek-ai/[email protected])就是固定版本,反过来可以用于回退到某个已知可用的版本,做法见《DeepSeek Harness 版本怎么选?》。
用 npx 跑 DSH plugin 的人怎么更新:@latest 与缓存
npx 方式没有常驻的安装实体,每次运行都重新解析包,但可能命中本地缓存里的旧副本;显式写 @latest 是让 npx 按最新标签解析的最直接办法(来源)。 三步处理:
- 显式带最新标签启动 — 执行
npx -y @deepseek-ai/dsh@latest web。预期:npx 按 latest 解析并运行;-y用于跳过安装确认提示。 - 怀疑命中旧版时清缓存 — 执行
npm cache clean --force后重跑上一步。预期:重新下载并按最新版运行;npx 的临时安装内容位于~/.npm/_npx,清理即可。 - 确认版本 — 启动后在另一个终端执行
dsh --version(或看启动日志里的版本行)。预期:与npm view @deepseek-ai/dsh version一致。
最容易混的一点:npx 与全局安装是两套独立的东西,更新其中一套不会影响另一套。如果你既有全局 dsh 又偶尔用 npx,两边会各跑各的版本,见《DSH 怎么更新?npx 与 git pull 更新本体》。
更新完怎么确认 DeepSeek Harness 版本真的变了
三个版本号必须分清:全局实装版本、命令实际运行的版本、registry 认为的最新版;三者不一致时问题通常出在 PATH 或 npm 源,而不是更新命令本身。 四步核对:
- 看实装版本 — 执行
npm ls -g @deepseek-ai/dsh。预期:这是 npm 记录在全局目录里的版本。 - 看实际运行版本 — 执行
dsh --version(Windows 可执行where dsh同时确认路径)。预期:与上一步一致;不一致说明 PATH 里优先命中的是另一份安装。 - 看 registry 最新版 — 执行
npm view @deepseek-ai/dsh version。预期:这是源站上的最新稳定版,用来判断「还能不能再更新」。 - 查 npm 源 — 执行
npm config get registry。预期:若指向镜像站而第 3 步的版本明显偏低,说明镜像同步滞后,可加--registry https://registry.npmjs.org直连官方源复核。
更完整的更新命令清单(本体与插件、各场景该用哪条)见《dsh 更新命令速查表》。
五条通用注意事项:
- 更新 dsh 本体不等于更新插件:插件由
dsh plugin通道用 pnpm 管理,走的是另一条维护路径,详见《dsh 怎么升级到最新版?》。 npm update -g不带包名会全量更新:可能顺带升掉其他全局包并引入不兼容,日常只更新指定包。- 源码克隆安装不吃 npm 更新:这类安装要走
git pull后重新构建,跑npm update -g不会有任何效果。 - 切换 Node 版本后版本会「变回去」:全局目录随 Node 版本变化,用 nvm 切换后再执行
dsh --version可能看到另一份安装,必要时用npm root -g确认当前全局目录在哪儿。 - 更新卡住或很慢先修网络:多数是源站慢或代理问题,处理办法见《DeepSeek Harness 更新卡住、更新慢怎么办?》。
用 DSH Plugin Hub 看清更新后的插件状态
npm 更新的是 dsh 本体,插件侧的版本与可更新状态要在 DSH Plugin Hub 里看——它是 DeepSeek Harness 内置的官方插件市场,已安装列表会标出哪些插件有可更新版本。 更新完本体、重启 dsh 后打开「已安装」页:有「可更新」徽标的插件再逐个点更新,避免把「本体没更新」和「插件没更新」混成一个问题。

来源:npm Docs - npm update、npm Docs - npm install、npm Docs - npx、deepseek-ai/deepseek-harness GitHub 仓库
常见问题
更新 DeepSeek Harness 时不一定能直接升到最新版:npm update -g 只把包升到已记录的语义化版本范围允许的最高版本,跨大版本不会被升上去。要强制装最新版,用 npm install -g @deepseek-ai/dsh@latest;两者都跑完再用 dsh --version 确认实际版本。
给 DeepSeek Harness 做版本升级时,前者尊重版本范围、本质是「范围内取最高」,适合打补丁式升级;后者直接以 latest 标签重新解析并覆盖安装,能跨大版本。日常想稳一点用 update,想确保拿到最新版用 install @latest,两者互不冲突。
用 npx 跑 DeepSeek Harness 没有常驻的安装实体,每次运行都会解析包,但可能命中本地缓存里的旧副本。显式写成 npx @deepseek-ai/dsh@latest 会强制按最新标签解析;缓存目录是 ~/.npm/_npx,怀疑命中旧版时可清理后再试。
确认 DeepSeek Harness 更新是否真的生效要三步核对:npm ls -g @deepseek-ai/dsh 看全局实装版本,dsh --version 看命令实际跑起来的版本,npm view @deepseek-ai/dsh version 看 registry 认为的最新版。三者不一致时,优先查 npm config get registry 与 PATH。
已经用 npm 更新过 DeepSeek Harness 却发现 npm view 版本偏低,多半是 npm 源指向了镜像站,镜像同步有延迟,npm view 读到的是镜像上的旧数据。执行 npm config get registry 确认源,必要时用 --registry https://registry.npmjs.org 直连官方源再查一次。
相关术语
- npm update -g
- npm update -g 是 npm 的全局更新命令,把全局安装的包升到已记录语义化版本范围允许的最高版本。它不会跨出该范围,因此像 DeepSeek Harness 这样跨大版本发布的项目,升级需要改用 npm install -g <包>@latest。— npm Docs
- latest 标签
- latest 标签是 npm registry 上某个包的默认发布标签,npm install <包>@latest 会按该标签解析到最新稳定版。它与具体版本号不同,会随维护者发版自动移动。— npm Docs
- npx 缓存
- npx 缓存是 npx 存放临时下载包的本地目录,通常位于 ~/.npm/_npx。用 npx 运行包时可能命中缓存中的旧副本,显式带 @latest 或清理缓存可以避免。— npm Docs
- --depth=0
- --depth=0 是 npm ls 与 npm outdated 的层级参数,表示只列出顶层依赖、不展开子依赖树。核对全局装了哪些包及其版本时用它,输出最干净。— npm Docs