在 Electron 中要求和扩展 类,怎么做?

Require and extend classes in Electron, how to?

我有一个文件 global.js 包含

var Global = (function () {
    function Global() {
        this.greeting = 'test';
    }

    Global.prototype.getList = function () {
        return "Hello, " + this.greeting;
    };
    return Global;
})();

和另一个文件 'main.js',其中包含

var global= new Global();

console.log(global.getList);

然后我在 index.html

中需要它们
...
<script>
    require('./npmMain.js');
    require('./main.js');
</script>

我得到 Global is not defined

如何让 class 可供 main.js 使用?

有什么想法吗?

编辑:如果我 console.log('test');npmMain.js 内,我可以看到它 运行,所以需要文件,只是 class 不可用或其他

欢迎来到模块世界!

首先,在您的 main.js 文件中,在顶部添加一行,如下所示:

var Global = require('./npmMain.js').Global;

然后在npmMain.js的末尾添加这样一行:

exports.Global = Global;

然后从 index.html 中删除该行。应该可以了。

我猜你对 CommonJS 风格的模块不熟悉。模块不共享全局变量。一切(除了 commonJS 实现提供的一些属性)都需要在使用之前被要求。另外,如果你想在模块之间公开值,你需要使用 exports 关键字。

CommonJS site上有更详细的解释。