【问题标题】:How to use gulp-changed with gulp-typescript如何使用 gulp-changed 和 gulp-typescript
【发布时间】:2015-07-26 18:22:50
【问题描述】:

我正在集成 gulp-changed 以防止所有文件在更改时记录到控制台。这适用于我的 HTML 文件,但我也使用 gulp-typescript 将我的 TypeScript 文件转换为 JavaScript。

我使用 Dan Wahlin here 建议的 TypeScript 工作流程。

所以我将 gulp-changed 实现为 gulp-typescript,如下所示:

var res = gulp.src(config.src)
        .pipe($.sourcemaps.init())
        .pipe($.changed(config.dest)) // <-- THIS LINE IS WHAT I ADDED
        .pipe($.typescript({
            target: config.options.target,
            module: config.options.module,
            removeComments: true
        }));

    res.dts.pipe(gulp.dest(config.dest));

    return res.js
        .pipe($.sourcemaps.write('.'))
        .pipe(gulp.dest(config.dest));

我的config 对象如下所示:

    "src": "./source/app/**/*.ts",
    "ignore": "!./source/**/*.d.ts",
    "options": {
        "target": "ES5",
        "module": "commonjs"
    },
    "lint": "prose",
    "dest": "./build/public/app"

不过,当我更改单个文件时,所有文件都会被记录下来。 我什至尝试将上述行 .pipe($.changed(config.dest)) 移动到 .pipe($.sourcemaps.write('.')) 行之前。

再一次,没有运气。

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: typescript gulp gulp-changed


    【解决方案1】:

    您的输入文件与输出文件的扩展名不同。您需要使用extension option 启用gulp-changed 来查找要比较的正确文件:

    .pipe($.changed(config.dest, {extension: '.js'}))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 2015-08-10
      • 2016-08-28
      • 1970-01-01
      • 2015-02-03
      • 2017-03-22
      • 1970-01-01
      相关资源
      最近更新 更多