首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在任务完成之前会发生吞咽通知。

在任务完成之前会发生吞咽通知。
EN

Stack Overflow用户
提问于 2016-04-08 09:28:12
回答 1查看 100关注 0票数 1

难以理解吞咽(我是新来的)。

我想要自动化的产品建设,其中涉及克隆从一个gitlab回购。

我不明白为什么我需要src('package.json')在那里,这是某种诡计吗?我也不明白为什么我会在任务开始时得到通知,而不是在任务结束时收到通知!

代码语言:javascript
复制
var gulp   = require('gulp');
var git    = require('gulp-git-streamed');
var notify = require('gulp-notify');


gulp.task('clone', function() {
  return gulp
    .src('package.json') // wth is this?
    .pipe(git.clone('https://gitlab.somedomain.com/mockups/theme.git', {args: './src/gitlab/mockups'}))
    .pipe(notify('psd repo cloned!')); // why does this run before cloning is finished?
});

所发生的是:

代码语言:javascript
复制
[13:16:34] gulp-notify: [Gulp notification] psd repo cloned!
[13:20:23]  Cloning into './src/gitlab/mockups'...
Checking out files: 100% (18/18), done.

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-08 10:33:57

gulp-git-streamedgulp-git的包装器,它允许您将git操作应用于流中的文件。这对于添加和提交文件这样的事情是有意义的:

代码语言:javascript
复制
return gulp.src('**/*.js')
  .pipe(git.add())
  .pipe(git.commit('Commit all JS files'))

然而,对于clone操作来说,这是毫无意义的。gulp-git-streamed实际上并不会将克隆的文件发送到流中,因为它需要一个现有的流开始,所以您必须人为地创建一个虚拟文件,您知道该文件与package.json一样存在。

在您的情况下,最好直接使用gulp-gitnode-notifier

代码语言:javascript
复制
var gulp   = require('gulp');
var git    = require('gulp-git');
var notifier = require('node-notifier');

gulp.task('clone', function(done) {
  git.clone('https://gitlab.somedomain.com/mockups/theme.git',
    {args: './src/gitlab/mockups'}, function (err) {
      if (err) {
        notifier.notify(err.message);      
      } else {
        notifier.notify('psd repo cloned!');
      }
      done();
  });
});

gulp.task('dependsOnClone', ['clone'], function(done) {
  console.log('starts executing after clone task has finished');
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36496111

复制
相关文章

相似问题

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