我有一个不是为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);


您可以根据需要将全局分配修改为更深的名称空间。

10-05 20:44
查看更多