Javascript 在Gulp中,如何仅处理缩小后更改的SFTP文件?

Javascript 在Gulp中,如何仅处理缩小后更改的SFTP文件?,javascript,css,node.js,gulp,Javascript,Css,Node.js,Gulp,使用gulpsftp,我似乎不能只上传CSS缩小后更改的文件 下面的半工作代码段首先编译CSS,然后继续观察srcdir中的更改。它接着观察distdir(存储缩小的CSS)中的更改,以便将该文件上载到web服务器 但是,这不起作用,因为gulp正在上载所有内容,而不仅仅是已更改和缩小的文件 var gulp = require('gulp'), changed = require('gulp-changed'), minifycss = require('gulp-minify

使用
gulpsftp
,我似乎不能只上传CSS缩小后更改的文件

下面的半工作代码段首先编译CSS,然后继续观察
src
dir中的更改。它接着观察
dist
dir(存储缩小的CSS)中的更改,以便将该文件上载到web服务器

但是,这不起作用,因为
gulp
正在上载所有内容,而不仅仅是已更改和缩小的文件

var gulp = require('gulp'),
    changed = require('gulp-changed'),
    minifycss = require('gulp-minify-css'),
    sftp = require('gulp-sftp')
;

var src = './src/',
    dist = './dist/';

var srcStyles = src + '**/*.css',
    distStyles = dist + '**/*.css';

var host = 'ftp.xxxx.xx.xx',
    auth = 'keyMain',
    remotePath = 'public_html';

gulp.task('compilecss', function(){
    gulp.src(srcStyles)
        .pipe(changed(dist))
        .pipe(minifycss({keepBreaks: true}))
        .pipe(gulp.dest(dist))
    ;
});

gulp.task('uploadcss', function(){
    gulp.src(distStyles)
        .pipe(changed(dist))
        .pipe(sftp({
            host: host,
            auth: auth,
            remotePath: remotePath
        }))
    ;
});

gulp.task('main', function(){
    gulp.start('compilecss');
});

gulp.task('watch', function(){
    gulp.watch(srcStyles, ['compilecss']);
    gulp.watch(distStyles, ['uploadcss']);
});

gulp.task('default', ['main', 'watch']);

不需要两个任务。gulp是基于文件的,这意味着您应该考虑管道,而不是任务

var gulp = require('gulp'),
  changed = require('gulp-changed'),
  minifycss = require('gulp-minify-css'),
  sftp = require('gulp-sftp');

var src = './src/',
  dist = './dist/';

var srcStyles = src + '**/*.css',
  distStyles = dist + '**/*.css';

var host = 'ftp.xxxx.xx.xx',
  auth = 'keyMain',
  remotePath = 'public_html';

gulp.task('compile', function (){
  return gulp.src(srcStyles)
    .pipe(changed(dist))
    .pipe(minifycss({
      keepBreaks: true
    }))
    .pipe(gulp.dest(dist))
    .pipe(sftp({
      host: host,
      auth: auth,
      remotePath: remotePath
    }));
});

gulp.task('watch', function (){
  gulp.watch(srcStyles, ['compile']);
});

gulp.task('default', ['compile', 'watch']);

你在这里问了同样的问题:,也许你介意在这里分享结果吗?抱歉-我现在已经回答了我自己的问题
gulp sftp
在上传后立即关闭了连接,使得下次更改文件时速度非常慢。。。有没有办法解决这个问题并保持连接开放以备将来上传?