在Node.js中使用第三方JavaScript文件

时间:2012-07-31 22:47:24

标签: javascript node.js

我有一个不是为Node.js编写的JavaScript文件。它实际上是由我编写的,但如果您将其视为第三方库,这个问题可能更容易理解。

通常,Node.js模块仅将module.exports对象公开给外部代码。这需要在编写Node.js文件时使用。

但是,该文件不是为Node.js编写的,但我希望将其包含在Node.js模块中。我无法编辑此文件,因为它将在以后使用,与Node.js无关。

我想我可以通过阅读文件并在内容上调用eval来解决它,但有更好的方法吗?

TL; DR

如何将.js文件包含到Node.js模块中,而不重写它以使用像exports这样的Node.js特定代码?

P.S。我想在Node.js中使用它的原因是在它部署到其他地方之前进行一些测试。

1 个答案:

答案 0 :(得分:2)

这取决于代码在该文件上的写法。如果文件包含类或单个对象,则可以执行以下操作:

(function(global) {

    function MyClass() {


    }

    MyClass.prototype = {
            ...
    };

    if( typeof module !== "undefined" && module.exports ) {
        module.exports = MyClass;
    }
    else if ( global ) {
        global.MyClass = MyClass;
    }

})(this);

如果需要,您可以将全局分配修改为更深的命名空间。