npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gavinc-cn/dsh-plugins

v0.2.2

Published

DSH 自研插件的聚合元包:自身不是 bundle(不含任何配置行),只把 @gavinc-cn/dsh-plugins-ui 与 @gavinc-cn/dsh-plugins-runtime 一起装上。

Readme

@gavinc-cn/dsh-plugins(聚合元包)

0.2.0 起本包不再是 bundle。 它只是一个「装一个拿到全部」的 npm 入口: dependencies 指向拆分后的两个 bundle 包,自身不含 dsh.bundle、不含任何 cordis.patch.yml。

| 版本 | 语义 | |---|---| | 0.1.0 / 0.1.1 | 单包全量 bundle:cordis.patch.yml 里 13 条 - insert:,面板一张卡片 | | 0.2.0 起 | 聚合元包:13 个组件拆成两个 bundle,本包只把它们一起装上 |

(拆分时是 UI 5 个 / 运行时 8 个;2026-10-15 kanban-board 移出 UI bundle 后两个 bundle 合计 12 个;同日 dsh-patch-ask-expand 从运行时 bundle 移到 UI bundle ⇒ UI 5 个 / 运行时 7 个, 合计仍是 12 个;2026-10-17 运行时 bundle 新增 dsh-path-rules、同时退役 sandbox-path-allowlist ⇒ 仍是 UI 5 个 / 运行时 7 个,合计 12 个。)

拆分后的两个 bundle

| 包 | 组件数 | 判据 | 面板卡片 | |---|---|---|---| | @gavinc-cn/dsh-plugins-ui | 5 | 面向 Web GUI:4 个纯浏览器组件(声明 dsh.client.platform: "web")+ dsh-patch-ask-expand(宿主侧启动时给官方 client bundle 打补丁,效果也是 GUI 观感) | 标题 = 包名 @gavinc-cn/dsh-plugins-ui | | @gavinc-cn/dsh-plugins-runtime | 7 | 宿主(node)侧的运行支撑组件(记忆/守卫/路径规则闸门等),没有 dsh.client | 标题 = 包名 @gavinc-cn/dsh-plugins-runtime |

两个包合起来 = 12 行;kanban-board 与 sandbox-path-allowlist(后者 2026-10-17 由 dsh-path-rules 合并退役)不随任何 bundle 下发,仍留在仓库作回滚真源。 行 id 与相对顺序都没变 ⇒ 各 profile 的覆盖行原样继续命中(dsh-patch-ask-expand 从 runtime 移到 UI 时也是如此,profile 无需改动)。

安装

# 想一次拿到两个 bundle 带来的 12 个组件的依赖(但仍要分别选 bundle)
pnpm add @gavinc-cn/dsh-plugins

# 真正把它挂进某个 profile:分别装两个 bundle(dsh plugin 会把包名追加进 dsh.profile.bundles)
dsh plugin --profile web add @gavinc-cn/dsh-plugins-ui
dsh plugin --profile web add @gavinc-cn/dsh-plugins-runtime

不要把本包名写进 dsh.profile.bundles:它声明不了 dsh.bundle,加载时会被判为 declares no dsh.bundle 并跳过该层(面板里也会显示成一条 not-bundle 异常卡片)。 用 dsh plugin add @gavinc-cn/dsh-plugins 装它时,CLI 会按普通依赖安装并打一条同样的 warning —— 这是预期行为。

两个 bundle 的 dsh.profile.bundles + dependencies 都要写(后者决定面板卡片是否显示), 改完重启宿主才生效;行级开关是 live 热重载。

License

MIT