2014-03-06 68 views
0

我正在尝试构建一种插件管理器,可以在不实际关闭节点应用程序的情况下重新加载外部源文件。就像一个概念的快速证明只是评估我的插件文件,这些文件只是函数原型的一个类。一切似乎都很好,除了我似乎无法正确确定范围。函数得到评估和原型,但我不知道为什么函数不能抓全局变量。有没有人对此有任何建议?NodeJS - 无法重新加载外部js?

回答

0

您可以只依赖require而不是手动加载文件。

现在,唯一的问题是require需要一个内部缓存,并且只会加载一次模块。但是,您可以使用以下快速解决方法强制卸载:

delete require.cache[require.resolve(myPlugin)]; 
require(myPlugin); 
+0

什么是将这些函数偶然转移到类中的最佳方法? – user3175465

+0

我做了一个快速循环,加载我所有的插件,但他们仍然无法看到全球范围内的东西,如fs模块等。 – user3175465

+0

您是否尝试过[vm](http://nodejs.org/api/vm .html)模块? –