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

@morlay/dsh-client-modules

v0.2.13

Published

Dev-form web layer for dsh: serves the page, the app entry and every client resource through an in-process vite dev server (middleware mode) — the node-side counterpart of upstream @deepseek-ai/dsh-client-modules, with the module table replaced by vite's

Readme

@morlay/dsh-client-modules

客户端的联邦预编译链:按请求触发、按包产出,把三方包与仓库内的包统一成带版本的地址 (/@client-modules/<pkg>@<version>/<export>),dev 与打包形态共用同一条链、同一套插件。

  • dev:宿主内起 vite(middleware 模式),裸说明符指向联邦地址、正在改的包逐文件走(HMR);
  • 打包:直接跑 rolldown 产出到 profile 的缓存目录,路由按产物清单(.files.json)服务。

判据、分工与坑都在 设计:客户端资源的联邦式预编译 (URL 空间、出口名↔文件名、版本表、拆分配下限、两种形态的差异与 --prod 的验证面)。

被 @local/dshdev 经 @morlay/web-custom-profile 挂进 profile;上游内部 文件按需 vendored 到各包的 src/vendor/(同步工具见 @local/upstream-sync)。

浏览器侧:只补上游的 modules 服务面

本包的 client 半不做别的事——它只把上游 modules 服务补上(entries.releaseChange 恒 undefined、 dismissRelease() 与 invalidate() 空操作),见 src/client/index.ts 的文件头。

原因:上游 ui-settings-general(侧栏左下角那个设置入口的占位者)从 0.2.x 起 inject modules, 而上游 client-modules 行已被 web-custom-profile 停用(模块表 roster 与 /plugins 路由由本链取代), 浏览器侧于是没有这个服务——那一行永远等不到 inject 满足,设置入口整个消失。停用一行就要补上它对外 承诺的服务面,这是本包必须带着 client 半的原因。