Gulp和run-sequence错误:任务未配置为gulp上的任务

jgx*_*jgx 8 gulp

我正在尝试将run-sequence添加到我的gulp工作流程中但每次我尝试执行我使用run-sequence的任务时都会出现此错误:

任务未配置为gulp上的任务.

根据运行顺序的来源,这是由此测试引起的:

if (isTask && !gulp.hasTask(t)) {
    throw new Error("Task "+t+" is not configured as a task on gulp.");
}
Run Code Online (Sandbox Code Playgroud)

我的任务被分成多个文件,如果我执行单个任务或具有依赖性的任务,一切正常,我唯一的错误就是这个:

'use strict';

var gulp = require('gulp'),
    runSequence = require('run-sequence');

module.exports = gulp.task('default', function() {
    if (release) {
        runSequence(
            'clean',
            ['index', 'styles', 'images', 'fonts', 'templates'],
            'browserify',
            'minify'
        );
    } else {
        runSequence(
            'clean',
            ['index', 'styles', 'images', 'fonts', 'templates'],
            ['watchify', 'watch']
        );
    }
});
Run Code Online (Sandbox Code Playgroud)

测试不应该失败,因为当我尝试在runSequence函数之前添加这段代码时,对于我尝试在函数中执行的每个任务,它输出为true:

console.log(gulp.hasTask('clean'); // Output true
runSequence(
    'clean',
    ['index', 'styles', 'images', 'fonts', 'templates'],
    ['watchify', 'watch']
);
Run Code Online (Sandbox Code Playgroud)

但我仍然有错误:任务清理未配置为gulp上的任务. 如果我从数组中删除'clean',它将在下一个任务中失败:任务索引未配置为gulp上的任务.

如果有人知道这里发生了什么......

谢谢您的帮助.

Bor*_*rić 15

您是run-sequence全球安装还是本地安装?

尝试在本地安装,这解决了我的问题!

npm install run-sequence
Run Code Online (Sandbox Code Playgroud)

  • 可以使用>> npm install --save-dev直接安装开发依赖项 (2认同)

sma*_*sma 6

我有同样的问题,而我的解决方案是在Jacob Thomason提到的我的要求声明中这样做.

var runSequence = require('run-sequence').use(gulp);
Run Code Online (Sandbox Code Playgroud)


Tsu*_*ura 0

如果您需要拆分为多个文件,请使用此配方。 https://github.com/gulpjs/gulp/blob/master/docs/recipes/split-tasks-across-multiple-files.md

看来module.exports =应该去掉。

'use strict';

var gulp = require('gulp'),
  runSequence = require('run-sequence');

gulp.task('default', function() {
  ...
});
Run Code Online (Sandbox Code Playgroud)