2015-10-01 69 views
5

attualmente sto usando il compilatore tsc con il flag di controllo dal prompt. Funziona bene, carica tutti i file di definizione e compila correttamente ogni file angular2. Tuttavia è molto scomodo da usare attraverso la finestra della shell.Come configurare gulp-typescript per Angular 2?

Il mio obiettivo è creare un'attività di gulp in grado di tradurre qualsiasi file dattiloscritto in base alle definizioni angular2. Ho coinvolto gulp-typescript, sembra facile da usare, quindi questo è il codice:

var tsProject = $.typescript.createProject(paths.src + '/tsconfig.json'); 
gulp.task('typescript', function() { 
    gulp 
    .src([ 
     paths.src + '/*.ts' 
    ]) 
    .pipe($.typescript(tsProject)).js 
    .pipe(gulp.dest(paths.tmp)); 
}); 

e questa è la struttura di cartelle:

... 
src/ 
---- app/ 
-------- ts/ 
------------ *.ts 
---- typings/ 
-------- angular2/ 
------------ angular2.d.ts 
------------ http.d.ts 
-------- es6-promise/ 
------------ ... 
-------- rx/ 
------------ ... 
-------- tsd.d.ts 
---- *.ts 
---- tsconfig.json 
gulpfile.js 
... 

Il file TSconfig ha nessuna lista files, in modo che il compilatore dovrebbe controllare qualsiasi file ts all'interno di src (a qualsiasi livello).

Quando l'attività viene invocato ricevo questo errore:

error TS2307: Cannot find module 'angular2/angular2'. 
error TS2307: Cannot find module 'angular2/http'. 

Come posso dire a-tipografica compilatore che d.ts file da usare?

+1

averti dichiarato AMD-riferimenti nei file come questo '' /// ' '? –

+0

Vedi questo progetto, potrebbe essere utile: [ng2-play.ts] (https://github.com/pkozlowski-opensource/ng2-play.ts) –

risposta

3

Sembra che tu non abbia ancora dichiarato nei tuoi file.

proveremo a dichiarare nel file in cui si importano i moduli qualcosa di simile:

/// <amd-dependency path="./src/typings/angular2/angular2.d.ts" /> 
/// <amd-dependency path="./src/typings/angular2/http.d.ts" /> 

import angular2 = require("angular2"); 
import http = require("http") 

/// <amd-dependency dice compilatore che i moduli speciali esiste in sistema e dare la possibilità di compilare senza errori

+0

Grazie! molto facile, quando ho iniziato il progetto ho usato queste linee di riferimento, ma 'tsc' funziona anche senza, quindi le ho rimosse. Ora posso dire di nuovo di benvenuto! – Splact

+1

Sono felice di aiutarti! :) Buona fortuna! –

1

mi consiglia di aggiungere definizioni a gulp.src. Qualcosa del genere:

var tsProject = $.typescript.createProject(paths.src + '/tsconfig.json'); 
gulp.task('typescript', function() { 
    gulp 
    .src([ 
     paths.src + '/app/**/*.ts', 
     paths.src + '/typings/**/*.d.ts' 
    ]) 
    .pipe($.typescript(tsProject)).js 
    .pipe(gulp.dest(paths.tmp)); 
}); 
0

Anche questo mi ha fatto imprecare e imprecare per un po '. Assicurarsi di avere questo nel nodo compilerOptions del vostro tsconfig.json:

{ 
    "compilerOptions": { 
    "moduleResolution": "node", 
    } 
}