我正在开发一个NodeJS应用程序,并且正在考虑开发插件系统的最佳方法。目前,应用程序上的大多数组件已经以可以注册和注销以添加和/或删除功能的方式解耦。但是目前,这些组件仍然分布在应用程序源中的许多文件夹中。我的目标是拥有一个插件文件夹,每个插件都有一个子文件夹,应用程序将在启动时扫描所述文件夹以加载插件。另外,作为一个很好的加分,我喜欢从node_modules加载插件(灵感来自babel处理版本6中的预设的方式)。我已经非常清楚这个系统将如何运作。
现在,我的问题是提供对插件的公共文件和类的访问的最佳方法是什么。让我们说我有一个基类Receiver
,一个插件注册一个自定义接收器(它将扩展基类Receiver
)。如何在不创建对象的情况下为外部npm模块提供所有类的访问权限并手动传递每个类?
我使用ES6导入代替我的代码中的节点require
函数,并使用相对路径,但说实话,我从未真正理解babel如何实现这些模块加载器和我怎么能使用动态模块加载器。