我有一个不是为Node.js编写的JavaScript文件。它实际上是我写的,但是如果您将其视为第三方库,则可能更易于理解。
通常,Node.js模块仅将module.exports
对象公开给外部代码。这要求在编写文件时要牢记Node.js。
但是,该文件不是为Node.js编写的,但我想将其包含在Node.js模块中。我无法编辑此文件,因为它将在以后独立于Node.js使用。
我想我可以通过读取文件并在内容上调用eval
将其提取,但是还有更好的方法吗?
TL; DR
如何将.js文件包含到Node.js模块中,而无需使用exports
之类的特定于Node.js的代码来重写它呢?
附言我想在Node.js中使用它的原因是在将其部署到其他位置之前进行了一些测试。
最佳答案
这取决于如何在该文件上编写代码。如果文件包含一个类或单个对象,则可以执行以下操作:
(function(global) {
function MyClass() {
}
MyClass.prototype = {
...
};
if( typeof module !== "undefined" && module.exports ) {
module.exports = MyClass;
}
else if ( global ) {
global.MyClass = MyClass;
}
})(this);
您可以根据需要将全局分配修改为更深的名称空间。