任务似乎已注册但无法 运行?

Task seems to be registered but is not able to run?

我正在尝试构建我的框架,以使其更加健壮和可重用。

/gulp-framework
    tasks/
        _assets.js
    index.js
    package.json
    node_modules/
/project-a
    gulpfile.js
    configuration.js

index.js 我正在使用 require(./tasks/_assets.js)(gulp, config);

我在 _assets.js 中有一个控制台日志,我可以在输出中看到,如果我 运行 gulp -T 我得到响应:

[08:17:44] ├── assets
[08:17:44] ├── build
[08:17:44] └─┬ default
[08:17:44]   └── build

使用 run-sequence() 构建简单的 运行s 资产。显然任务在这里注册,但是如果我只是 运行 gulp 在 cmd 中,我得到:

Starting 'build'...
[08:18:19] 'build' errored after 1.76 ms
[08:18:19] Error: Task assets is not configured as a task on gulp.  If this is a submodule, you may need to use require('run-sequence').use(gulp).

我试过使用 gulp 但这只会产生更多错误。

有什么想法吗?

后来我发现模块 run-sequence 准确地告诉了我需要做什么,尽管我没有意识到这是特定于 run-sequence 模块的。

无论我在哪个子模块中使用 run-sequence,我都需要执行以下操作:

module.exports = function(gulp, config) {
    var runSequence = require('run-sequence').use(gulp);
}

来自run-sequence

在 gulp 个子模块中使用

如果您有一个复杂的 gulp 设置,您的任务分散在不同的文件中,您可能会收到 运行-sequence 无法找到您的任务的错误。在这种情况下,您可以配置 运行-sequence 以查看子模块中的 gulp,如下所示:

// submodule tasks/mygulptask.js 
var gulp = require('gulp'), 
// might be a different instance than the toplevel one 
// this uses the gulp you provide 
runSequence = require('run-sequence').use(gulp);
// ...and then use normally 
runSequence('subtask1', 'subtask2');