【问题标题】:gulp-typescript with gulp-sourcemap: output files to same directorygulp-typescript 与 gulp-sourcemap:将文件输出到同一目录
【发布时间】:2016-05-12 15:03:41
【问题描述】:

我正在使用 gulp-typescriptgulp-sourcemaps 来编译带有源映射的 TypeScript。我想将.js 和源映射文件都输出到与原始.ts 文件相同的目录。

我正在使用 tsconfig.json 文件来配置 TypeScript,并且我正在使用 typings 来管理 TypeScript 定义文件。我自己的所有代码都在js 目录中。这是我的项目结构:

project root
|-- js/
|   |-- subdir/
|   |   |-- someScript.ts
|   |-- app.ts
|-- typings/
|   |-- someDefinitionFile.d.ts
|-- gulpfile.js
|-- tsconfig.json

现在我希望app.js 出现在js 目录中,someScript.js 出现在js/subdir 中。另外,在 Chrome 中调试时,我希望在“源”选项卡中保持相同的文件夹结构。

我为此配置了以下 gulp 任务:

var gulp = require("gulp");
var ts = require("gulp-typescript");
var tsProject = ts.createProject("tsconfig.json");
var sourcemaps = require('gulp-sourcemaps');

gulp.task("ts", function () {
    var tsResult = tsProject
      .src()
      .pipe(sourcemaps.init())
      .pipe(ts(tsProject)).js
      .pipe(sourcemaps.write("."))
      .pipe(gulp.dest("js"));
});

这有效地将.js 文件输出到正确的目录中。但是,在 Chrome 中运行它并打开开发工具时,.ts 文件位于根目录下的“源”目录中,这意味着源映射文件包含不正确的根目录。

要在同一位置显示.ts 文件和.js 文件,应进行哪些更改?

注意:这个问题与this类似,只是我想使用tsconfig.json,因此不能使用gulp.src或其base属性。

【问题讨论】:

    标签: typescript gulp gulp-sourcemaps gulp-typescript


    【解决方案1】:

    只需设置 gulp-sourcemap 写入选项的 sourceRoot 属性。此任务有效:

    gulp.task("ts", function () {
        tsProject.src()
            .pipe(sourcemaps.init())
            .pipe(ts(tsProject)).js
            .pipe(sourcemaps.write({sourceRoot: "/js"}))
            .pipe(gulp.dest("js"));
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多