2016-08-05 18 views
0

Erste Fehler:Fehler in require ('child_process') Funktion nicht definiert - Typoskript

zone.js:260 Uncaught EXCEPTION: Error in ./AppComponent class AppComponent - inline template:8:48 
ORIGINAL EXCEPTION: ReferenceError: require is not defined 
ORIGINAL STACKTRACE: 
ReferenceError: require is not defined 
    at AppComponent.performCmdOperation (http://localhost:8000/app/app.component.js:43:67) 

und app.component.ts ist

export class AppComponent{ 

SelectType = EnumSelectType; 
selectedSection: SelectType = EnumSelectType[EnumSelectType.Home]; 
selectPage(selectType:EnumSelectType) { 
    console.log('Global : ' + EnumSelectType[selectType]); 
    this.selectedSection = EnumSelectType[selectType]; 
    console.log(this.selectedSection + ' selected'); 
} 

performCmdOperation(){ 
    console.log('in perform action'); 
    const exec = require('sdk/system/child_process').exec; //this is the point where I'm getting error. 
    exec('ipconfig', (error, stdout, stderr) => { 
     if (error) { 
      console.error(`exec error: ${error}`); 
      return; 
     } 
     console.log(`stdout: ${stdout}`); 
     console.log(`stderr: ${stderr}`); 
    }); 
} 

Bitte helfen Sie mir, das Problem zu finden. Ist import missing or any dependency erforderlich für die Verwendung von 'child_process'.

Meine aktuellen Abhängigkeiten sind

"bootstrap": "^3.3.6", 

"@angular/common": "2.0.0-rc.4", 
"@angular/compiler": "2.0.0-rc.4", 
"@angular/core": "2.0.0-rc.4", 
"@angular/http": "2.0.0-rc.4", 
"@angular/platform-browser": "2.0.0-rc.4", 
"@angular/platform-browser-dynamic": "2.0.0-rc.4", 
"@angular/router": "2.0.0-rc.1", 
"@angular/router-deprecated": "2.0.0-rc.1", 
"@angular/upgrade": "2.0.0-rc.4", 

"systemjs": "0.19.27", 
"es6-shim": "^0.35.0", 
"reflect-metadata": "^0.1.3", 
"rxjs": "5.0.0-beta.6", 
"zone.js": "^0.6.12" 

Ist dies etwas brauchen, für die gulpfile.ts zu ändern. Bitte geben Sie an, wie 'child_process' in gulpfile hinzugefügt wird.

Antwort

0

Try child_process statt zu verlangen, zB:

const exec = require('child_process').exec; 

ehrlich, nicht sicher zu sein, was Sie erreichen wollen, da es wie ein Schräg 2 Projekt sieht, die in einem Browser ausgeführt wird, aber child_process ist eine integrierte Node.js-Komponente, die in einer Serverumgebung ausgeführt wird.

UPDATE:

Im Rahmen eines Gulp gulpfile, hier ist ein Beispiel, wie man child_process verwenden würde eine externe ausführbare Datei zu nennen - in diesem Fall der Dotnet CLI.

var ps = require("child_process"); 
gulp.task("serve:prod", function() { 
    const dotnetPs = ps.exec("dotnet run"); 
    // redirect standard output of the child process to the console. 
    dotnetPs.stdout.on("data", function(data) { console.log(data.toString()); }); 
    dotnetPs.stderr.on("data", function(data) { console.error(data.toString()); }); 
}); 
+0

Ich benutze Schluck für die Kompilierung dies alles, also wenn Sie mir mit Schluck Task-Funktion helfen können, dies innerhalb der Anwendung zu verwenden, die helfen würde. –

+0

Das gleiche hier, ich benutze Schluck für meine Build und verwenden 'child_process', um eine externe ausführbare Datei aufzurufen. Ich werde meine Antwort mit einem Beispiel aktualisieren. Sie würden dies jedoch nicht in einer Angular 2-Komponente verwenden. –

+0

Bitte geben Sie das Beispiel mit dem Beispiel gulpfile.js an, wenn möglich. Vielen Dank! –