首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp 3 => Gulp 4问题

Gulp 3 => Gulp 4问题
EN

Stack Overflow用户
提问于 2019-05-07 16:12:39
回答 1查看 228关注 0票数 0

我已经将一个Gulpfile转换成了Gulp4,但是我遇到了一些问题。

当我运行gulp时,它运行得很好,可以编译样式并上传它们,但是当我修改文件时,它会显示"Connection Closed“,并且不做任何事情。

有没有人知道如何让它继续查看文件并重新运行编译?

代码语言:javascript
复制
(() => {

  'use strict';

  const gulp         = require('gulp');
  const sass         = require('gulp-sass');
  const sourcemaps   = require('gulp-sourcemaps');
  const concat       = require('gulp-concat');
  const autoprefixer = require('gulp-autoprefixer');
  const plumber      = require('gulp-plumber');
  const gutil        = require('gulp-util');
  const sftp         = require('gulp-sftp');
  const path         = require('path');
  const notify       = require('gulp-notify');
  const uglify       = require('gulp-uglify');
  const rename       = require('gulp-rename');



  gulp.task('sass2css', () => {
    return (
      gulp
        .src('src/sass/**/*.{scss,sass}')
        .pipe(plumber({
          errorHandler: function (err) {
            console.log(err);
            this.emit('end');
          }
        }))
        .pipe(sourcemaps.init())
        .pipe(sass({
          indentedSyntax: false,
          outputStyle: 'nested'
        }))
        // .pipe(concat('application.css'))
        .pipe(autoprefixer({
          browsers: ['last 3 versions']
        }))
        .pipe(gulp.dest('dist/styles'))
    )
  })



  gulp.task('deployCSS', () => {
    return gulp.src('dist/styles/*.css')
    .pipe(sftp({
      host: 'xxxxxxxxx',
      auth: 'xxxxxxx',
      remotePath: 'xxxxx/xxxxx/xxxxx/assets/css'
    }));
  })


  // gulp.task('watch', function() {
  //   gulp.watch('src/sass/**/*.{scss,sass}', gulp.series('sass'));
  //   gulp.watch('dist/styles/**/*.css', gulp.series('deployCSS'));
  // })


  // gulp.task('default', gulp.parallel('sass', 'watch'));


  gulp.task('watch', (done) => {
    gulp.watch('src/sass/**/*.{scss,sass}', gulp.series('sass2css'));
    gulp.watch('dist/styles/**/*.css', gulp.series('deployCSS'));
    done();
  })



  exports.default = gulp.series('sass2css', 'deployCSS', 'watch');


  function errorHandler (error) {
    console.log(error.toString());
    this.emit('end');
  }

})();

这是我的终端在运行一次时的样子:

代码语言:javascript
复制
[vagrant@precise64] ➜  myproject git:(master) ✗ gulp
[09:07:59] Using gulpfile /vagrant/myproject/gulpfile.js
[09:07:59] Starting 'default'...
[09:07:59] Starting 'sass2css'...
[09:08:02] Finished 'sass2css' after 2.89 s
[09:08:02] Starting 'deployCSS'...
[09:08:02] Authenticating with password.
[09:08:06] gulp-sftp: Uploaded: application.css => xxxxx/xxxxx/xxxxx/assets/css/application.css
[09:08:06] gulp-sftp: 1 file uploaded successfully
[09:08:06] Finished 'deployCSS' after 3.28 s
[09:08:06] Starting 'watch'...
[09:08:06] Finished 'watch' after 34 ms
[09:08:06] Finished 'default' after 6.22 s
[09:08:06] SFTP :: SFTP session closed
[09:08:06] Connection :: end
[09:08:06] Connection :: closed
EN

回答 1

Stack Overflow用户

发布于 2019-07-16 20:08:14

gulp.series()返回一个函数,因此您需要在调用后添加()。试一试:

代码语言:javascript
复制
  gulp.task('watch', (done) => {

    gulp.watch('src/sass/**/*.{scss,sass}').on('change', function (){ 
        gulp.series('sass2css')(); 
    });

    gulp.watch('dist/styles/**/*.css').on('change', function (){
        gulp.series('deployCSS')(); 
    });

    done();

  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56018224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档