两个gulp 4任务分别运行,但在gulp.series()内部不起作用

时间:2019-03-25 21:27:35

标签: node.js gulp-4

我正在尝试用gulp-4并遇到问题:

我有类似于.vue的文件

<template lang="pug">
  // ...
</template>

<style lang="scss">
  // ...
</style>

并有2个任务:

gulp.task('precompile', () => {
  return gulp.src(['./src/frontend/views/components/**/*.vue',
                   './src/frontend/views/components/**/*.pug',
                   './src/frontend/vendor/**/*.pug'])
            .pipe(vueFilter)
            .pipe(extract('<template lang=\\"pug\\">','<\\/template>'))
            .pipe(ext_replace('.pug'))
            .pipe(vueFilter.restore)
            .pipe(
              foreach(
                (stream, file) => {
                  console.log(file.path)
                  return stream
                    .pipe(pug({
                      client: true,
                      pretty: true,
                      compileDebug: false,
                      debug: false,
                      inlineRuntimeFunctions: false,
                      name: 'render_' + path.basename(file.path, '.pug')
                    }))
                    .pipe(replace(/function\s([a-zA-z0-9\_\$]+)/g, (match, name) => {
                      return name + ': function';
                    }))
                }
              )
            )
            .pipe(concat('templates.js', {
              newLine: ','
            }))
            .pipe(wrap('{ <%= contents %> }\n\r'))
            .pipe(defineModule('es6'))
            .pipe(ins.prepend("import pug from 'vendor/pug-runtime-es6'\n\r"))
            .pipe(prettier())
            .pipe(gulp.dest('./src/frontend/views'));
});

这:

gulp.task('prepare-sass', () => {
  return gulp.src(['./src/frontend/views/components/**/*.vue', './src/frontend/views/components/**/*.scss'])
            .pipe(vueFilter)
            .pipe(extract('<style lang=\\"scss\\">','<\\/style>'))
            .pipe(ext_replace('.scss'))
            .pipe(vueFilter.restore)
            .pipe(gulp.dest('./src/frontend/views/sass/temp'));
});

可能看起来很复杂,但实际上并非如此:第二个只是提取样式,然后将其复制到目标文件夹,而第一个提取样式,然后对其进行预编译,然后合并到一个文件“ templates.js”中。

在cli中一个接一个地运行时,两个任务都能完美地工作。但是当我在gulp.series中运行它们时,它给出了

events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: write after end
    at writeAfterEnd (C:\Programming\js\millionaire\node_modules\readable-stream\lib\_stream_writable.js:288:12)

好吧,请不要告诉我所有这些代码和想法本身都是hm ..不相关(我知道),但是问题表明我误会了某些内容..我不能忍受它! ))

有什么想法吗?

将感谢您的任何帮助或建议。

0 个答案:

没有答案