如何使用 gulp-changed with gulp-typescript
How to use gulp-changed with gulp-typescript
我正在集成 gulp-changed 以防止所有文件在更改时记录到控制台。这适用于我的 HTML 文件,但我也在使用 gulp-typescript 将我的 TypeScript 文件转换为 JavaScript.
我使用 Dan Wahlin 建议的 TypeScript 工作流 here。
所以我实现了 gulp-changed into 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('.'))
行之前。
同样,运气不好。
有人知道如何解决这个问题吗?
您的输入文件的扩展名与输出文件的扩展名不同。您需要使用 extension
option 来启用 gulp-changed
以找到要比较的正确文件:
.pipe($.changed(config.dest, {extension: '.js'}))
我正在集成 gulp-changed 以防止所有文件在更改时记录到控制台。这适用于我的 HTML 文件,但我也在使用 gulp-typescript 将我的 TypeScript 文件转换为 JavaScript.
我使用 Dan Wahlin 建议的 TypeScript 工作流 here。
所以我实现了 gulp-changed into 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('.'))
行之前。
同样,运气不好。
有人知道如何解决这个问题吗?
您的输入文件的扩展名与输出文件的扩展名不同。您需要使用 extension
option 来启用 gulp-changed
以找到要比较的正确文件:
.pipe($.changed(config.dest, {extension: '.js'}))