2014-12-29 17 views
7

Mam projekt, w którym używam łyka. Chciałbym, aby pliki maszynopisu były konwertowane na javascript i miały również mapy źródłowe. Oto, co mam teraz:Jak używać łyka do tworzenia plików sourcemaps maszynopisu w różnych plikach, a nie w plikach javascript?

var sourcemaps = require('gulp-sourcemaps'); 
var typescript = require('gulp-typescript'); 

gulp.task('typescript', function() { 
    gulp.src('app/**/*.ts') 
     .pipe(typescript()) 
     .pipe(sourcemaps.init())  
     .pipe(sourcemaps.write()) 
     .pipe(gulp.dest('app'))  
}); 

Działa to częściowo, ale w środku javascriptu znajdują się wszystkie elementy. Czy ktoś może mi powiedzieć, jak mogę to zrobić, aby utworzyć plik sourcemap dla każdego javascript zamiast mieć mapę w środku?

Odpowiedz

11

Piszesz swoją sourcemaps.write(), aby być w linii.

Z gulp-sourcemaps repo

Aby napisać zewnętrznych plików mapowania źródła przechodzą ścieżki względnej do przeznaczenia sourcemaps.write().

Powinno być -

var sourcemaps = require('gulp-sourcemaps'); 
var typescript = require('gulp-typescript'); 

gulp.task('typescript', function() { 
    gulp.src('app/**/*.ts') 
     .pipe(sourcemaps.init()) 
     .pipe(typescript()) 
     .pipe(sourcemaps.write('../maps')) 
     .pipe(gulp.dest('app'))  
}); 

sprawdzić, czy to rozwiązuje problem.

+1

Próbowałem tego. Dodałem komentarze takie jak // # sourceMappingURL = ../../../maps/access/controllers/HomeController.js.map do moich plików, ale nie utworzono pliku mapy. – Alan2

+0

Oh duh - dokumenty pokazują, że wtyczki idą po 'sourcemaps.init'. Uruchom 'maszynopis()' opublikuj 'init'. –

+0

@Alan Możesz użyć 'sourcemaps.write (". ")' Do zapisywania map źródłowych do plików '.js.map' zamiast ich wstawiania. Ref: [github] (https://github.com/ivogabe/gulp-typescript/issues/201) –

Powiązane problemy