2014-12-29 7 views
7

Ich habe ein Projekt, wo ich schlucke. Ich möchte die Typoskript-Dateien in Javascript umgewandelt haben und auch Quellkarten haben. Hier ist, was ich gerade habe:Wie kann ich Schluck verwenden, um Typescript-Quellkarten in verschiedenen Dateien anstatt in den Javascript-Dateien zu erstellen?

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

Dies funktioniert teilweise aber die Quellkarten erscheinen alle in der Javascript. Kann mir jemand sagen, wie ich es so machen kann, dass es für jedes Javascript eine Quellkartendatei erstellt, anstatt die Karte darin zu haben?

Antwort

11

Sie schreiben Ihre sourcemaps.write() inline zu schreiben.

Vom gulp-sourcemaps repo

Um die externen Kartendateien zu schreiben, einen Pfad relativ zum Ziel passieren sourcemaps.write().

sein sollte -

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

Sehen, ob das Ihr Problem behebt.

+1

Ich habe das versucht. Es fügte Kommentare wie // # sourceMappingURL = ../../../maps/access/controllers/HomeController.js.map zu meinen Dateien hinzu, aber es wurde keine Map-Datei erstellt. – Alan2

+0

Oh duh - die Docs zeigen die Plugins nach dem 'sourcemaps.init'. Führe 'typescript()' post 'init' aus. –

+0

@Alan Sie können 'sourcemaps.write (". ")' Verwenden, um Quellzuordnungen in '.js.map'-Dateien zu schreiben, anstatt sie zu inlinen. Ref: [github] (https://github.com/ivogabe/gulp-typescript/issues/201) –