本文介绍了一个完全开源的JavaScript编写的插件框架——MinimaJS。源代码可以从https://github.com/lorry2018/minimajs.下载框架参考了OSGi规范,在Node上实现了规范定义的三个插件功能。MinimaJS有三个功能:动态插件、服务和扩展。框架是基于VSCode、ES6编码和Node 8开发的,有几千行代码,非常简洁、优雅、轻量级。框架的代码结构划分清晰,命名优雅。
让我们简单了解一下如何使用这个框架。
通过这些代码行,您可以创建一个插件框架,并从当前插件目录中加载插件。
每个插件都在plugins目录下,插件的基本信息、依赖信息、服务、扩展都是plugin.json定义的这个文件必须在插件的根目录下,并且包含。插件由plugin.json和其他文件组成。其他文件是可选的,包括js、html、css文件等。下面是一个插件示例。对于plugin.json文件,除了id是必需属性,其他都是可选的,这意味着最小的插件是只定义plugin.json的插件,文件只声明插件id。
类似于OSGi规范,每个插件都可以定义一个activator,默认情况下是Activator.js。如果名称不是默认值,则需要通过activator在plugin.json中定义activator的文件名。一个典型的Activator定义如下,用于声明插件的入口和出口。
这里,开始和停止分别代表入口和出口,用于服务注册、绑定、事件监控等。
插件通过服务、一个插件注册服务和一个插件消费服务进行通信。插件注册可以通过plugin.json声明,也可以通过activator start方法的PluginContext参数的addService注册服务。使用plugin.json注册一个服务,如下所示。
另一个插件可以通过激活器使用服务。
该框架还提供了插件扩展和类加载等功能,可以通过框架提供的示例来探索这些功能。下面是一个插件REST框架,它是基于插件构建的,可以通过下载源代码获得。
这个例子演示了Express、Art-Template、WebAPI框架、插件动态扩展和Web轻量级框架的构造。您可以详细查看示例。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。