2014-12-29 43 views
7

我有一个项目,我正在使用gulp。我想打字稿文件转换为JavaScript,并有源地图也。这是我现在有的:如何使用gulp在不同的文件中创建Typescript源代码,而不是在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'))  
}); 

这部分工作,但sourcemaps都出现在JavaScript内。任何人都可以告诉我,我可以如何使它为每个JavaScript创建一个源代码文件而不是内部的地图?

回答

11

您正在编写您的sourcemaps.write()为内联。

gulp-sourcemaps repo

要写入外部源地图文件,一个路径相对于传递给 目的地sourcemaps.write()。

应该是 -

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

看看是否能解决您的问题。

+1

我试过了。它将//#sourceMappingURL = ../../../maps/access/controllers/HomeController.js.map等注释添加到我的文件中,但没有生成映射文件。 – Alan2

+0

呵呵 - 文档显示插件在'sourcemaps.init'之后。运行'typecript()'post'init'。 –

+0

@Alan您可以使用'sourcemaps.write(“。”)'将源地图写入'.js.map'文件,而不是内联它们。参考:[github](https://github.com/ivogabe/gulp-typescript/issues/201) –

相关问题