0

我有一个不是为 Node.js 编写的 JavaScript 文件。它实际上是我写的,但是如果你把它当作第三方库,这个问题可能会更容易理解。

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

但是,该文件不是为 Node.js 编写的,但我想将它包含到 Node.js 模块中。我无法编辑此文件,因为它将在以后使用,独立于 Node.js。

我想我可以通过读取文件并调用eval内容来完成它,但是有更好的方法吗?

TL;博士

如何将 .js 文件包含到 Node.js 模块中,而无需重写它以使用特定于 Node.js 的代码exports

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

4

1 回答 1

2

这取决于代码是如何写入该文件的。如果文件包含一个类或单个对象,那么您可以这样做:

(function(global) {

    function MyClass() {


    }

    MyClass.prototype = {
            ...
    };

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

})(this);

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

于 2012-07-31T22:54:34.180 回答