基于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/egoist/tsup
https://github.com/tylerjwatson/Jint.CommonJS
https://github.com/egoist/tsup
https://tsup.egoist.dev/#typescript--javascript
浙公网安备 33010602011771号