我试图在电子应用程序中使用Aurelia和SystemJs;
我有一个相当基本的app-window.js
:
const remote = require('electron').remote;
document.getElementById("close-btn").addEventListener("click", function (e) {
var window = remote.getCurrentWindow();
window.close();
});
...
如果我将它作为普通的html脚本(<script src="app-window.js"></script>
)使用它,它的工作原理非常好。
但是,如果我systemJS
导入它:
<script>
System.import('app-window.js');
</script>
我收到错误:
system.js:4 GET 文件:/// d:/Code/aurelia-electron-typescript/output/electron.js 净:: ERR_FILE_NOT_FOUND
我也在配置中设置transpiler: false
。
不幸的是,我想吃蛋糕并且吃它,因为我想将Aurelia的依赖注射与电子的远程功能混合在一起。
有没有办法让system.js不干涉电子require
?
答案 0 :(得分:0)
经过快速实验......如果脚本明确加载了System,它就会出现,它会神奇地起作用:
打字稿:
export class AppWindow
{
constructor()
{
var remote = require('electron').remote;
document.getElementById("close-btn").addEventListener("click", function (e) {
var window: Electron.BrowserWindow = remote.getCurrentWindow();
window.close();
});
}
}
var appWindow:AppWindow = new AppWindow()
当编译为[es6,System]时:
System.register([], function(exports_1, context_1) {
"use strict";
var __moduleName = context_1 && context_1.id;
var AppWindow, appWindow;
return {
setters:[],
execute: function() {
class AppWindow {
constructor() {
var remote = require('electron').remote;
...
......完美无缺。