我users.ts
在子目录中有一个打字稿文件routes
.
gulp代码gulpfile.js
:
var tsProject = ts.createProject(tsConfigFile); return tsProject.src() .pipe(sourcemaps.init()) .pipe(ts(tsProject)) .js .pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: ''})) .pipe(gulp.dest('.'));
生成的源映射gulp-sourcemaps
不适用于VSCode:
{"version":3,"sources":["routes/users.ts"],"names":[], "mappings":"...","file":"routes/users.js","sourceRoot":""}
在VSCode中正常生成的tsc
源映射:
{"version":3,"file":"users.js","sourceRoot":"","sources":["users.ts"],"names":[], "mappings":"..."}
并且VSCode断点与生成的源映射一起正常工作tsc
.
那么如何配置gulp-typescript/gulp-sourcemaps
生成相同的源图tsc
?
这与Gulp Typescript + Browserify中的 问题相同; 捆绑的源映射指向转换的JS而不是源TS
添加sourceRoot函数sourcemaps.write(...)
假设您的.ts
文件在src
项目的文件夹中,sourcemaps
管道将如下所示:
.pipe(sourcemaps.write('.', { sourceRoot: function(file){ return file.cwd + '/src'; } }))