【问题标题】:Compiling TypeScript using gulp is creating an unwanted destination folder使用 gulp 编译 TypeScript 会创建一个不需要的目标文件夹
【发布时间】:2016-02-04 05:23:51
【问题描述】:

我正在尝试让 Gulp 转译我的 /dev 目录中的 .ts 文件,并将转译后的 .js 文件移动到 /build 目录。

所需的结构如下:

/dev
 - index.ts
/build
 - index.js

实际发生的情况如下所示:

/dev
 - index.ts
/build
 - /dev
    - index.js

如您所见,dev 文件夹正在被复制。 gulpfile.js中的相关代码如下:

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

// gulp ts
gulp.task('ts', function () {
  return tsProject.src('dev/**/*.ts')
    .pipe(ts(tsProject))
    .pipe(gulp.dest('build/'));
});

我可以让我的其他构建任务以所需的方式运行,但无论出于何种原因,TypeScript 任务都让我很伤心。

【问题讨论】:

  • 我不想展平或删除文件夹结构,而是保持它。我希望devbuild 共享相同的结构。
  • 相信你可以使用gulp.dest回调修改文件路径:stackoverflow.com/a/33743973/99256(即.pipe(gulp.dest(function(file) {);)
  • @Vizkos 我已经尝试过,结果相同。 .pipe(ts(tsProject)) 行正在做一些我无法弄清楚的事情。注释掉该行可以保持所需的结构,但显然不会转译我的文件。

标签: javascript typescript gulp


【解决方案1】:

我解决了我的问题。将"rootDir": "dev" 添加到tsconfig.json 中的compilerOptions 使gulp 任务按预期运行。

还发生了意外的副作用,TypeScript 编译器开始抛出错误,指出它无法找到以前没有问题的模块。我将/// <reference path="../typings/tsd.d.ts" /> 明确添加到我的.ts 文件中,并重新开始营业。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多