首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有串联/并行的gulp@4任务多次运行

具有串联/并行的gulp@4任务多次运行
EN

Stack Overflow用户
提问于 2018-07-25 13:24:48
回答 1查看 461关注 0票数 0

在我的吞咽文件中使用以下代码:

代码语言:javascript
复制
var gulp = require('gulp');
var pkg = require('./package.json');
var zip = require('gulp-zip');

var zipDist = () =>
  gulp
    .src('dist/**/*')
    .pipe(zip(`${pkg.name.replace('@relax/', '')}.dist.zip`))
    .pipe(gulp.dest('./'));

var zipFonts = () =>
  gulp
    .src('dist/fonts/*')
    .pipe(zip(`${pkg.name.replace('@relax/', '')}.fonts.dist.zip`))
    .pipe(gulp.dest('./'));

var zipIcons = () =>
  gulp
    .src(['dist/icons/*', 'dist/loaders/*', 'dist/sprites/*'])
    .pipe(zip(`${pkg.name.replace('@relax/', '')}.icons.dist.zip`))
    .pipe(gulp.dest('./'));

var zip = gulp.series(zipDist, zipFonts, zipIcons);

gulp.task('zip', gulp.series(zipDist, gulp.parallel(zipFonts, zipIcons)));

狼吞虎咽:

代码语言:javascript
复制
$ gulp zip

我得到了这个结果:

代码语言:javascript
复制
$ gulp zip                                                                                            
[21:41:45] Using gulpfile ~/project/packages/core/gulpfile.js
[21:41:45] Starting 'zip'...
[21:41:45] Starting 'zipDist'...
[21:41:45] Finished 'zipDist' after 201 ms
[21:41:45] Starting 'zipFonts'...
[21:41:45] Starting 'zipDist'...
[21:41:45] 'zipFonts' errored after 1.48 ms
[21:41:45] TypeError: Cannot read property 'on' of undefined
    at DestroyableTransform.Readable.pipe (/home/alexander/project/packages/core/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:564:8)
    at zipFonts (/home/alexander/project/packages/core/gulpfile.js:181:6)
    at bound (domain.js:301:14)
    at runBound (domain.js:314:12)
    at asyncRunner (/home/alexander/project/packages/core/node_modules/async-done/index.js:55:18)
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)
[21:41:45] 'zip' errored after 204 ms
[21:41:45] The following tasks did not complete: zipDist
[21:41:45] Did you forget to signal async completion?

版本:

代码语言:javascript
复制
$ gulp -v
[15:22:45] CLI version 2.0.1
[15:22:45] Local version 4.0.0

为什么zipDist要运行两次?如果我这么做:

代码语言:javascript
复制
gulp.task('zip', zipDist);

它只运行一次,但我还需要完成另外两项任务。

编辑:

我现在添加了一个更完整的输出,并抛出了一个错误。一开始我觉得这无关紧要。我删除了违规代码,日志显示一切都很好。如果在任务中抛出错误,那么gulp想要重试吗?这是故意的吗?

对于那些感兴趣的人,我在这里提交了一个关于gulp-zip错误的问题:https://github.com/sindresorhus/gulp-zip/issues/105

EN

回答 1

Stack Overflow用户

发布于 2018-07-26 06:42:43

我开始把我的var转换成const和eureka!违犯守则是:

代码语言:javascript
复制
var zip = require('gulp-zip');
...
var zipDist = () => gulp.src(..).pipe(zip(...))
...
var zip = gulp.series(zipDist, ...);

zip被宣布了两次。面膜

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

https://stackoverflow.com/questions/51520055

复制
相关文章

相似问题

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