所以我有一个node.js应用程序,我希望它有一个或多个以下的插件:
所以说plugin A
是data storage
而plugin B
是data outputer
和view
插件,需要plugin A
?
是否有任何现有的框架可以解决这个问题?
我想我知道怎么做需要和一些'魔术',但我有要求:
register
与主应用程序一起使用,以便应用程序可以在插件上发送事件或调用方法。答案 0 :(得分:0)
您所要做的就是将插件编写为简单的Node.js模块,如您所说,在主应用程序中require
。
您的插件必须导出activate
- 您可以从主应用中调用的功能。
要在主应用程序中注册功能(或插件本身),您可以编写一个节点模块,插件开发人员必须添加它的开发人员依赖项。我们暂时将其称为plugin-interface-module。这些模块应该有一个寄存器功能,你可以在插件中调用activate
- 函数内部。
您的主应用程序还需要这些插件接口模块,并从中检索所有已注册的插件。所需的模块是全局缓存的,就像单身一样,所以你的主应用程序能够获得已注册的插件列表。
看看广告VS Vode(https://code.visualstudio.com)。它是用typescript编写的,并以相同的方式使用扩展。