如何使用gulp在不同的文件中而不是在javascript文件中创建Typescript源映射?
我有一个项目,我正在使用gulp。我希望将typescript文件转换为javascript,并提供源映射。以下是我现在拥有的:如何使用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())
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()
postinit
@Alan您可以使用sourcemaps.write(“.”
将源映射写入.js.map
文件,而不是将它们内联。Ref:sourcemaps.init()调用是我错过的。但由于某种原因,我的代码在一段时间内没有这行代码,所以很奇怪。