0
我正在尝试构建一种插件管理器,可以在不实际关闭节点应用程序的情况下重新加载外部源文件。就像一个概念的快速证明只是评估我的插件文件,这些文件只是函数原型的一个类。一切似乎都很好,除了我似乎无法正确确定范围。函数得到评估和原型,但我不知道为什么函数不能抓全局变量。有没有人对此有任何建议?NodeJS - 无法重新加载外部js?
我正在尝试构建一种插件管理器,可以在不实际关闭节点应用程序的情况下重新加载外部源文件。就像一个概念的快速证明只是评估我的插件文件,这些文件只是函数原型的一个类。一切似乎都很好,除了我似乎无法正确确定范围。函数得到评估和原型,但我不知道为什么函数不能抓全局变量。有没有人对此有任何建议?NodeJS - 无法重新加载外部js?
您可以只依赖require
而不是手动加载文件。
现在,唯一的问题是require需要一个内部缓存,并且只会加载一次模块。但是,您可以使用以下快速解决方法强制卸载:
delete require.cache[require.resolve(myPlugin)];
require(myPlugin);
什么是将这些函数偶然转移到类中的最佳方法? – user3175465
我做了一个快速循环,加载我所有的插件,但他们仍然无法看到全球范围内的东西,如fs模块等。 – user3175465
您是否尝试过[vm](http://nodejs.org/api/vm .html)模块? –