Gulp任务从未定义:默认。树显示没有默认任务

问题描述 投票:1回答:1

我正在尝试使旧的gulpfile for launching processes现代化,但遇到问题。当我跑了一口气:

PS C:\Users\me\Desktop\_REPOS\gknode> gulp
[18:42:50] Using gulpfile ~\Desktop\_REPOS\gknode\gulpfile.js
[18:42:50] Task never defined: default

gulpfile.js

gulp=require('gulp')

//Because gulp.task(name, deps, func) was replaced by gulp.task(name, gulp.{series|parallel}(deps, func))

gulp.task('node-server-start', gulp.series(
  function (cb) {spawn('node', ['nodeapi/nodeapi.js'], {stdio: 'inherit'}) }
  )
);
gulp.task('ng-serve', gulp.series(
  function (cb) {spawn('ng', ['serve'], {stdio: 'inherit'}) }
  )
);
gulp.task('start', gulp.parallel(['ng-serve', 'node-server-start'], function () {console.log('both servers launched on localhost:4200')}));

任务树:

PS C:\Users\me\Desktop\_REPOS\gknode> gulp --tasks
[18:43:00] Tasks for ~\Desktop\_REPOS\gknode\gulpfile.js
[18:43:00] ├─┬ node-server-start
[18:43:00] │ └─┬ <series>
[18:43:00] │   └── <anonymous>
[18:43:00] ├─┬ ng-serve
[18:43:00] │ └─┬ <series>
[18:43:00] │   └── <anonymous>
[18:43:00] └─┬ start
[18:43:00]   └─┬ <parallel>
[18:43:00]     ├─┬ ng-serve
[18:43:00]     │ └─┬ <series>
[18:43:00]     │   └── <anonymous>
[18:43:00]     ├─┬ node-server-start
[18:43:00]     │ └─┬ <series>
[18:43:00]     │   └── <anonymous>
[18:43:00]     └── <anonymous>

我的问题是在启动任务结束时的匿名任务吗?

gulp
1个回答
1
投票

为了能够只运行gulp,您需要指定一个名为default的任务。其他一些观点:

  • 您不需要在gulp.series中包装单个任务函数。
  • gulp.parallel期待一个任务函数列表(名称或匿名函数),而不是数组。
  • 当从未调用为服务器生成任务函数指定的回调时,可能会遇到问题。

最后一点可能没有必要让代码工作,但我已将它包含在下面的应该完成工作:

const gulp = require('gulp');
const { spawn } = require('child_process');

gulp.task('node-server-start', function(cb) {
    const server = spawn('node', ['nodeapi/nodeapi.js'], { stdio: 'inherit' });
    server.on('close', () => cb());
});

gulp.task('ng-serve', function(cb) {
    const server = spawn(
        /^win/.test(process.platform) ? 'ng.cmd' : 'ng',
        ['serve'],
        { stdio: 'inherit' }
    );
    server.on('close', () => cb());
});

gulp.task(
    'start',
    gulp.parallel('ng-serve', 'node-server-start', function(cb) {
        console.log('both servers launched on localhost:4200');
        cb();
    })
);

gulp.task('default', gulp.series('start'));

更新:

更新了与​​平台无关的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.