2015-04-08 5 views
9

Mam następujący rurociąguW jaki sposób można uzyskać polecenia gulp-maszynopis do wyprowadzania do tego samego katalogu, co plik źródłowy?

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

I wydaje się, że aby „twardego kod” ścieżkę dest oparciu o korzeń ścieżki src. Jeśli moją ścieżką src jest app/modules/**.ts, moja ścieżka docelowa musi być app/modules. Ogranicza mnie to do korzystania z pojedynczej ścieżki root src i nie mogę używać rodzeństwa.

Chciałbym móc zrobić mój src ['path1/**/*.ts', 'path2/**/*.ts] i mieć transpiled dane wyjściowe zapisane w tym samym folderze, w którym znajdował się plik źródłowy.

Odpowiedz

6

Jeśli masz pliki źródłowe tak:

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

niż jest równa:

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

co oznacza, można umieścić swój cel do:

gulp.dest('.') 

od to najniższy wspólny mianownik. Resztę robi Gulp.

+17

Dla mnie ta konfiguracja powoduje, że pliki wyjściowe zostaną umieszczone w katalogu głównym. Musiałem dodać opcję 'base', aby uzyskać pożądany wynik:' gulp.src (paths.ts, {base: "."}) ' –

+0

doskonały, dodając bazę pracował dla mnie również –

+0

@DarkDaskin Chciałbym przeczytać ten komentarz wcześniej. Teraz mam 100 plików do wyczyszczenia z mojego katalogu głównego ... to rozwiązanie było również potrzebne dla mnie. W innej notatce powinieneś uczynić to osobną odpowiedzią. –