2017-01-23 2 views
1

Я разрабатываю приложение Electron с использованием Angular2.Модули узла и электронного модуля изнутри Angular2

В Электрона main.js я ссылки/загрузки в App 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 модуль как:

import * as fs from "fs"; 

Он по-прежнему будет собираться, но всякий раз, когда я называю fs.readFile(...) он говорит:

__WEBPACK_IMPORTED_MODULE_2_fs__.readFile is not a function 

Когда я думаю об этом, это не и не может работать, поскольку модули не находятся внутри папки node_modules (справа?). Что мне нужно сделать, чтобы сделать их доступными внутри части NG?

ответ

0

Вы не можете вызвать модули Electron/Node непосредственно изнутри Углового. Вместо этого проверьте the Electron remote API.

+0

К сожалению, я не могу даже получить доступ к 'electron' модуль для загрузки' remote' из: 'импорта {удаленного} из«электрон»,' бросает: 'Не удается найти имя ' electron'' – cocoseis

1

В случае, если это по-прежнему актуальна -

Я не знаю «официального» путь для этого еще. но есть работа вокруг решения - в основном вокруг требующих электронные/другие модули в index.html и доступ к window['electron'] -

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

или создание угловой услуги доступа к объекту электронов.

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

Вы можете увидеть implementaion этого Here

  • ElectronWindow относится к пользовательскому интерфейсу вы можете создать и добавить функцию требуется(), чтобы для обработки типизации.
  • использование window.require(*some-node-module*) для хранения модулей
Смежные вопросы