Как использовать gulp-change с gulp-typcript

Я интегрирую gulp-change, чтобы предотвратить внесение всех файлов в консоль при изменении. Это работает для моих файлов HTML, но я также использую gulp-typcript для переноса моих файлов TypeScript в JavaScript.

Я использую рабочий процесс TypeScript в соответствии с предложением Дэна Уолина.

Итак, я реализовал gulp-change в gulp-typcript следующим образом:

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('.')) линия.

Опять не повезло.

Кто-нибудь знает, как это исправить?

1 ответ

Решение

Ваши входные файлы имеют другое расширение, чем выходные файлы. Вам нужно использовать extension возможность включить gulp-changed найти правильные файлы для сравнения:

.pipe($.changed(config.dest, {extension: '.js'}))
Другие вопросы по тегам