2017-01-23 1 views
1

電子のアプリケーションを使用しています。Angular2を開発中です。電子のmain.jsノード2とエレクトロンのモジュールがAngular2の中から

私はNGアプリケーションをロード/参照しています:

const {app, BrowserWindow} = require('electron') 
const path = require('path') 
const url = require('url') 

let win 

function createWindow() { 
    win = new BrowserWindow({width: 800, height: 600}) 

    // load the index.html of the NG app: 
    win.loadURL(url.format({ 
    pathname: path.join(__dirname, '/../../dist/index.html'), 
    protocol: 'file:', 
    slashes: true 
    })) 

[...] 

これは魔法のように動作します。しかし、NG部の中のからノードと電子のモジュールにアクセスしたいと思っています。それはまだコンパイルが、私はそれが言うfs.readFile(...)呼び出すたび

import * as fs from "fs"; 

__WEBPACK_IMPORTED_MODULE_2_fs__.readFile is not a function 

私はそれについて考えるとき、これがない

私は例えばをインポートしよう:fsモジュールのようにモジュールはnode_modulesフォルダー内にないので正しく動作しません(右?)。 NG部分の中でそれらを利用できるようにするには、何が必要ですか?

答えて

0

電子/ノードモジュールを角度の内側から直接呼び出すことはできません。代わりに、the Electron remote APIをチェックしてください。場合

+0

を格納するために使用window.require(*some-node-module*): 'インポート{リモート}「電子」から;'例外: ' '名前を見つけることができません電子 – cocoseis

1

これはまだ関連している -

私はまだこのための「公式」の方法を知りません。しかし、回避策のソリューションがある -

<script> 
    window.electron = require('electron'); 
</script> 

又は電子オブジェクトにアクセス角度サービスを作成 - 主のindex.htmlに電子/他のモジュールを必要とwindow['electron']アクセス周り。

declare const window: ElectronWindow; 
export class ChildProcessService {...} 

あなたが作成し、タイピングを処理するために必要()関数を追加できるカスタムインタフェースを指し、このHere

  • ElectronWindowのimplementaionを見ることができます。
  • 残念ながら、私もから `remote`をロードするために、` electron`モジュールにアクセスすることはできませんモジュール
関連する問題