2015-04-08 8 views
9

Ich habe die folgende PipelineWie kann ich gulp-typescript in dasselbe Verzeichnis wie die Quelldatei ausgeben?

function typescripts() { 
    return gulp.src(paths.watchedFiles.ts) 
     .pipe(cached('typescripts')) 
     .pipe(plumber()) 
     .pipe(addsrc(paths.ts.include)) 
     //TODO: Need to eliminate the original source path (ex. /users/userName) from the sourcemap file. 
     .pipe(sourcemaps.init()) 
     .pipe(ts(tsProjectMode, undefined, ts.reporter.fullReporter(true))).js 
     .pipe(gulpIgnore.exclude(paths.ts.excludeFromPostCompilePipeline)) 
     .pipe(ngAnnotate({ 
      remove: false, 
      add: true, 
      gulpWarnings: false //typescript removes base path for some reason. Warnings result that we don't want to see. 
     })) 
     .pipe(sourcemaps.write('.', {includeContent: false})) 
     .pipe(gulp.dest(paths.ts.basePath)); 
    } 

Ich scheine „hard-Code“ den Zielpfad auf der Wurzel des src Pfad basierend machen zu müssen. Wenn mein Quellpfad app/modules/**.ts ist, muss mein Zielpfad app/modules lauten. Dies beschränkt mich auf die Verwendung eines einzelnen Root-Quellpfad und ich kann keine Geschwister verwenden.

Ich möchte in der Lage sein, meine src ['path1/**/*.ts', 'path2/**/*.ts] machen und die transpiled Ausgabe in den gleichen Ordner geschrieben, wo die Quelldatei gefunden wurde.

Antwort

6

Wenn Sie Quelldateien wie folgt aus:

gulp.src(['path1/**/*.ts', 'path2/**/*.ts]) 

als es das gleich ist:

gulp.src(['./path1/**/*.ts', './path2/**/*.ts], { base: '.' }) 

Das bedeutet, können Sie Ihr Ziel setzen:

gulp.dest('.') 

seit das ist der kleinste gemeinsame Nenner. Der Rest wird von Gulp erledigt.

+17

Bei dieser Konfiguration werden die Ausgabedateien in das Stammverzeichnis geschrieben. Ich musste hinzufügen "Basis" -Option, um das gewünschte Ergebnis zu erhalten: 'gulp.src (paths.ts, {base:". "})' –

+0

perfekt, Hinzufügen der Basis funktionierte für mich auch –

+0

@DarkDaskin Ich wünschte, ich hätte gelesen dieser Kommentar vorher. Jetzt habe ich 100 Dateien von meiner Wurzel zu bereinigen ... diese Lösung wurde auch für mich benötigt. Auf eine andere Anmerkung sollten Sie dies als separate Antwort definieren. –

Verwandte Themen