Necessita do módulo do nó no componente angular2

não consigo descobrir como exigir módulos de nó nos meus componentes angular2 - especialmente no meu caso, como abrir uma nova janela de electrões dentro de um componente angular2.

O meu componente.html tem algo assim

<button class="btn btn-success" (click)="buttonLoginClick()">Login</button>

e dentro do componente.to I use the following

export class LoginComponent  {
  constructor() {}

  buttonLoginClick(): void {
    alert("just a test");

    const remote = require('electron').remote;
    const BrowserWindow = remote.BrowserWindow;

    var win = new BrowserWindow({ width: 800, height: 600 });
    win.loadURL('./test.html');
  }
}

o erro na compilação é dizer

não é possível encontrar o nome 'require'.

Author: capc0, 2017-04-15

1 answers

Sei que a pergunta foi feita há mais de dois meses. Mas, uma vez que este é ranking bastante alto no Google para algumas palavras-chave. Vou explicar como consegui que funcionasse...

Opção 1

No seu ficheiro index.htm Adicione o seguinte bloco dentro do elemento head

<script>
    var electron = require('electron');
</script>

Então você pode declinar a variável de elétrons dentro de qualquer arquivo Typescript, por exemplo, um componente...

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

declare var electron: any;

@Component({
    ...
})
export class FooComponent {
    bar() {
        var win = new electron.remote.BrowserWindow({ width: 800, height: 600 });
        win.loadURL('https://google.com.au');
    }
}
Quando ligou para essa função, abrirá uma janela de electrões apontando para google

Opção 2

Esta opção deve ser um pouco mais limpa. Se tiver um ficheiro src\typings.d.ts. Então você pode simplesmente dizer ao compilador typescript para registrar a função require global...
declare var require: any;

E depois pode usar a função require como faria normalmente

 6
Author: Leo, 2020-06-20 09:12:55