基于js 插件系统的设计

实际上以前简单介绍过基于jint 的设计,以下是对于周边集成的一个简单说明

参考图

如下,因为很多时候我们是需要进行开发集成的,并不是所有人都会后端服务的开发,利用好node 周边的能力,我们开发就很方便了

机制简单说明

我们应该提供周边能力,比如由platform 提供的js 模块能力部分,应该有npm 可以mock 的包,方便开发者直接本地测试,同时还需要提供cli 方便用户进行开发好的插件进行发布到插件注册中心中,对于mock 部分,我们可以利用api 进行处理,包装一个方法签名一致的包就行了,同时对于开发的插件打包,我们应该提供一些能力,比如很多时候用户需要依赖一些其他包(可能是平台提供的,也可能是npm 周边的)此时可以使用使用类似github action 使用的@vercel/ncc 处理(tsup 似乎更好,因为我们直接使用的是es6 模块),对于插件,我们应该支持类似npm 的包命名格式,同时支持scope 模式的包,k6 支持ts 的玩法可以借鉴

参考资料

https://github.com/sebastienros/jint

https://github.com/vercel/ncc

https://github.com/egoist/tsup

https://github.com/tylerjwatson/Jint.CommonJS

https://github.com/egoist/tsup

https://tsup.egoist.dev/#typescript--javascript

https://www.npmjs.com/package/@types/k6?activeTab=code

https://github.com/grafana/k6-template-typescript/tree/main

posted on 2025-07-24 08:00  荣锋亮  阅读(32)  评论(0)    收藏  举报

导航