首页 > 解决方案 > 并行任务和系列中的 Gulp 汇总

问题描述

我有一个带有 rollupTask 的 gulpfile,如下所示。但是在最后一个 zipTask 任务中,它没有从汇总中捆绑 js 输出。我发现解决此问题的唯一方法是在 ziptask 之前添加等待时间。汇总输出和下一个 gulp 系列似乎有一小部分延迟。这是预期的行为还是有什么东西可以在不增加等待时间的情况下解决这个问题?我的 rollupTask 是否正确?zip 任务只是将输出文件夹压缩到不同的文件夹中。输出文件夹本身包含预期的包。

const gulp = require('gulp');
const rollup = require('rollup');

async function rollupTask() {
  const rollupBuild = await rollup({
    input: 'index.js',
    plugins: rollupPlugins,
  });
  await rollupBuild.write({
    file: 'bundle.js',
    format: 'es',
    sourcemap: true,
  });
  await rollupBuild.close();
}

exports.default = series(taskOne, parallel(taskTwo, taskThree, rollupTask), zipTask);

标签: gulprollup

解决方案


最简单的方法是使用为 gulp 编写的插件。gulp-rollup

const { src, dest } = require('gulp');
const rollup = require('gulp-rollup');
 
function rollupTask() {
    const options = { input: './src/main.js' } // any option supported by Rollup can be set here.
    return src('./src/**/*.js')
        .pipe(rollup(options)) // transform the files here.
        .pipe(dest('./dist'));
}

exports.build = series(rollupTask);

开始时:gulp build


推荐阅读