2016-05-19 5 views
2

私は電子アプリ内でAureliaとSystemJsを使用しようとしています。スクリプトがsystem.jsによってロードされるときに( 'electron')を要求する方法

私はかなり基本的な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 file:///D:/Code/aurelia-electron-typescript/output/electron.js net::ERR_FILE_NOT_FOUND

はまた、私はあまりにも設定で transpiler: falseセットを持っています。

残念ながら私はケーキを持っていて、電子のリモーティング機能を使ってアウレリアの依存性注入を混ぜてみたいと思っています。

system.jsに電子のrequireに干渉しない方法がありますか?スクリプトが明示的にシステムにアップロードした場合に迅速な実験の後

+0

私はsystem.jsが 'require'を実行しないネイティブの能力を持っていると信じていますが、私は電子アプリでこれをやったことがあります - ' window.requireNode = require'がsystem.jsをロードする前に、 。私は言ったように、しかし、より良い選択肢があると思う。 –

答えて

0

が...それが表示されます、それは魔法のように動作します:

typescriptです:

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.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; 
    ... 

...完璧に機能します。

関連する問題