如何使用gulp在不同的文件中而不是在javascript文件中创建Typescript源映射?

如何使用gulp在不同的文件中而不是在javascript文件中创建Typescript源映射?,javascript,node.js,typescript,gulp,Javascript,Node.js,Typescript,Gulp,我有一个项目,我正在使用gulp。我希望将typescript文件转换为javascript,并提供源映射。以下是我现在拥有的: var sourcemaps = require('gulp-sourcemaps'); var typescript = require('gulp-typescript'); gulp.task('typescript', function () { gulp.src('app/**/*.ts') .pipe(typescript())

我有一个项目,我正在使用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'))    
});

这在一定程度上是可行的,但是源映射都出现在javascript中。有人能告诉我如何使它为每个javascript创建一个sourcemap文件,而不是将映射放在里面吗?

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

要写入外部源映射文件,请传递相对于 目标到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'))    
});

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

我试过这个。它在我的文件中添加了类似//#sourceMappingURL=../../../../maps/access/controllers/HomeController.js.map的注释,但没有生成任何映射文件。噢,duh-文档显示插件在
sourcemaps.init
之后。运行
typescript()
post
init
@Alan您可以使用
sourcemaps.write(“.”
将源映射写入
.js.map
文件,而不是将它们内联。Ref:sourcemaps.init()调用是我错过的。但由于某种原因,我的代码在一段时间内没有这行代码,所以很奇怪。