为什么我会问这个问题呢?
我有一些定义语言实用程序的旧文件,我希望在服务器和客户端上都使用它们,然而其中许多实用程序都被定义为全局作用域函数。 例如,我有像
closure(fClosure)
,module(fModule)
之类的函数,还有像$sb(arg,arg,arg)
这样的实用程序,它是一个字符串构建器等等。现在这些实用程序被定义在一个名为
core.js
的文件中,并且这个文件作为第一个依赖项加载到浏览器中,生活很美好。但是,在根目录中需要这个文件可以帮助扩展
Array.prototype
,但是在其他模块中定义的函数是不可见的。
(请避免讨论污染或与其他库冲突的问题)我知道这不符合CommonJS规范...但现在我只是想利用这些旧代码,而不重新组织所有代码以符合CommonJS的方式。
我也发现了RequireJS和其提出的美丽的AMD模型,但它只回答了有关如何在浏览器中运行编写为node.js的代码,而不是反之。
将其分配给全局变量将不起作用,因为这意味着我必须重写所有旧库。 我正在寻找一种方法使它们在全局范围内运行并留下它们声明的所有内容,而无需重新编写它们。
那么,有没有一种方法可以要求Node要求一个文件并在全局范围内运行它?
require
的正确源代码,那么这个问题显然没有明确的解决方案。 - vogdb