Требование узловых модулей в настольном приложении ionic + electronic (5.0.0) - PullRequest
2 голосов
/ 28 апреля 2019

Я создаю настольное приложение с использованием ионов и электронов.

Я начал использовать electron v4.1.3, и мне удалось потребовать узловые модули в «ионной части» приложения, например, дома..ts файл с помощью:

import { Component } from '@angular/core';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {

    ngOnInit () {
        console.log ((<any> window).require ("fs"));
    }
}

и вот что я получаю:

Screen of ionic app default home page

Как вы можете видеть, я могу получить доступвсе fs методы, так что я могу читать, писать, копировать файлы и все остальное.

Теперь я установил electron v5.0.0, я создал то же приложение, но я получаю сообщение об ошибке, когда пытаюсь потребовать fs модуль в методе ngOnInit:

window.require не является функцией

Screen of ionic app default home page with node module require error

Какя могу это исправить?Если вам нужна дополнительная информация по установке или окружению, просто скажите мне, спасибо!

1 Ответ

2 голосов
/ 08 мая 2019

nodeIntegration теперь отключена по умолчанию в 5.0.0 в соответствии с документом о критических изменениях.

https://github.com/electron/electron/blob/master/docs/api/breaking-changes.md#planned-breaking-api-changes-50

и примечания к выпуску

https://github.com/electron/electron/releases/tag/v5.0.0

Так что вам нужно включить его:

const mainWindow = new BrowserWindow({
    webPreferences: { nodeIntegration: true }
  });
...