在angular2组件中需要节点模块

我不知道如何在我的angular2组件中需要节点模块 – 特别是在我的情况下,如何在angular2组件中打开一个新的电子窗口。

我的component.html有这样的东西

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

在component.ts中,我使用以下内容

 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'); } } 

编译错误在说

找不到名字'require'。

我知道这个问题在两个月前被问过。 但是,由于这个关键字在Google上的排名相当高。 我会解释我是如何工作的

选项1

在你的index.htm文件中,在head元素中添加下面的块

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

然后,您可以在任何Typescript文件中声明电子variables,例如,一个组件…

 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'); } } 

当你调用这个函数的时候,它会打开一个指向谷歌的电子窗口

选项2

这个选项应该更清洁一些。 如果你有一个src\typings.d.ts文件。 然后,你可以简单地告诉打字稿编译器注册require全局function…

 declare var require: any; 

然后,您可以像平常一样使用require函数