标签: gulp-changed

Gulpfile可以有效地编译已更改的TypeScript文件

我正在努力使gulp编译并观看TypeScript文件.这是我到目前为止所得到的

var tsProject = plugins.typescript.createProject(
{
    removeComments: false,
    target: 'ES5',
    module: 'amd',
    noExternalResolve: false,
    noImplicitAny: false,
});

var typescriptGlob = [
    presentationScriptsDir + '**/*.ts',
    definitelyTypedDefinitions
];

gulp.task("compile-typescript", function () {
    return gulp.src(typescriptGlob)
        .pipe(plugins.typescript(tsProject))
        .pipe(gulp.dest(presentationScriptsDir));
});

gulp.task("watch-typescript", function() {
    return gulp.watch(typescriptGlob, ["compile-typescript"]);
});
Run Code Online (Sandbox Code Playgroud)

我正在使用gulp-typescript.

但是,由于我们有数百个TypeScript文件,所以每次其中一个文件发生更改时我都不想重新编译它们.上面的代码就是这样(我可以告诉因为watch-typescript至少需要花费的时间compile-typescript)

我尝试过使用gulp-changed,就像这样

gulp.task("compile-typescript", function () {
    return gulp.src(typescriptGlob)
        .pipe(plugins.changed(presentationScriptsDir, {extension: '.js'}))
        .pipe(plugins.typescript(tsProject))
        .pipe(gulp.dest(presentationScriptsDir));
});
Run Code Online (Sandbox Code Playgroud)

这确实过滤掉了未更改的文件.然后,打字稿编译器会报告错误,因为它只获取单个文件,该文件缺少通常从其他文件获取的类型声明.

我不想将noExternalResolve标志设置为true,因为那时很多类型检查都不会完成,这首先打败了使用TypeScript的很多原因.

我怎样才能更好地编写这个gulpfile?

javascript typescript gulp gulp-watch gulp-changed

5
推荐指数
1
解决办法
4111
查看次数

javascript,gulp,watch,changed

我无法理解这一点.这应该是每次修改监视文件时执行的gulp任务.任何人都可以解释为什么需要通过changed插件管道监视文件?

gulp.task('build-css', function () {
  return gulp.src(paths.css)
  .pipe(changed(paths.output, {extension: '.css'}))
  .pipe(gulp.dest(paths.output));
});

gulp.task('watch', ['serve'], function() { 
  gulp.watch(paths.css, ['build-css']); 
}); 
Run Code Online (Sandbox Code Playgroud)

免责声明:这不是我的代码.只是想了解发生了什么,以便创建我自己的自定义监视任务.

javascript watch gulp gulp-changed

4
推荐指数
1
解决办法
3135
查看次数

Gulp Changed不起作用

我之前使用gulp改变了我的JS没有问题.但是现在我正在尝试使用gulp-changedgulp-newer我的scss文件,而不检测哪个文件已更改.

var changed    = require('gulp-changed');
var newer = require('gulp-newer');
var SRC = './stylesheets/**/*.scss';
var DEST = './stylesheets';

gulp.task('sass', function () {   
    return gulp.src(SRC)
        .pipe(changed(DEST)) //tried newer here as well 
        .pipe(sass())
        .pipe(gulp.dest(DEST))
});
Run Code Online (Sandbox Code Playgroud)

更改scss文件时,它将输出已更改但不更改任何文件 scss

[BS] Watching files...
[09:26:13] Starting 'sass'...
[09:26:14] Finished 'sass' after 180 ms
Run Code Online (Sandbox Code Playgroud)

gulp.task('watch', ['setWatch', 'browserSync'], function () {
    gulp.watch('./stylesheets/**/*.scss', ['sass']);
});
Run Code Online (Sandbox Code Playgroud)

预期的输出文件存在,并且自昨天以来一直没有改变.

如何让scss只编译已更改的文件.

sass node.js gulp gulp-changed gulp-newer

3
推荐指数
1
解决办法
2013
查看次数