在 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上有更详细的解释。
我有一个文件 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上有更详细的解释。