Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NPM模块中动态加载文件作为插件(ES6导入)_Javascript_Node.js_Ecmascript 6_Babeljs - Fatal编程技术网

Javascript 在NPM模块中动态加载文件作为插件(ES6导入)

Javascript 在NPM模块中动态加载文件作为插件(ES6导入),javascript,node.js,ecmascript-6,babeljs,Javascript,Node.js,Ecmascript 6,Babeljs,我正在开发一个NodeJS应用程序,并且正在考虑开发插件系统的最佳方法。目前,应用程序上的大多数组件已经以一种可以注册和注销的方式解耦,以添加和/或删除功能。但目前,这些组件仍然分布在应用程序源中的许多文件夹中。我的目标是有一个插件文件夹,每个插件都有一个子文件夹,应用程序在启动时会扫描这个文件夹来加载插件。另外,作为一个不错的补充,我喜欢从node_模块加载插件(灵感来源于babel在版本6中处理预设的方式)。我已经对这个系统如何工作有了相当好的想法 现在,我的问题是,提供对公共文件和类以及插

我正在开发一个NodeJS应用程序,并且正在考虑开发插件系统的最佳方法。目前,应用程序上的大多数组件已经以一种可以注册和注销的方式解耦,以添加和/或删除功能。但目前,这些组件仍然分布在应用程序源中的许多文件夹中。我的目标是有一个插件文件夹,每个插件都有一个子文件夹,应用程序在启动时会扫描这个文件夹来加载插件。另外,作为一个不错的补充,我喜欢从node_模块加载插件(灵感来源于babel在版本6中处理预设的方式)。我已经对这个系统如何工作有了相当好的想法

现在,我的问题是,提供对公共文件和类以及插件的访问的最佳方式是什么。假设我有一个基类
接收器
,一个插件注册了一个定制接收器(它将扩展基类
接收器
)。如何在不创建对象并手动传递每个对象的情况下,为所有这些类提供对外部npm模块的访问


我使用ES6导入,在我的代码中替换节点的
require
函数,并使用相对路径,但老实说,我从未真正理解babel如何实现这些模块加载器,以及如何使用动态模块加载器。

哦,我认为这是不可能的(没有一些脆弱的黑客)。将重要的东西(类、常量、函数)作为参数传递给插件对我来说似乎是个好主意。哦,我认为这是不可能的(没有一些脆弱的黑客)。将重要的东西(类、常量、函数)作为参数传递给插件对我来说似乎是个好主意。