node.js - 任务似乎已注册但无法运行?

标签 node.js frameworks gulp

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

/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()运行 Assets 。显然,任务是在这里注册的,但是如果我只是在 cmd 中运行 gulp,我会得到:

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).

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

有什么想法吗?

最佳答案

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

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

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

来自run-sequence :

在 gulp 子模块中使用

如果您有一个复杂的 gulp 设置,并且您的任务分散在不同的文件中,您可能会收到运行序列无法找到您的任务的错误。在这种情况下,您可以配置 run-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');

关于node.js - 任务似乎已注册但无法运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37380286/

相关文章:

python - Flask 和其他 Python 框架中的多个 URL 段

css - 如何解决这个 Sass 编译错误?

node.js - 尝试 gulp build 安装 Semantic UI 时出现“在严格模式下使用 const”错误

javascript - node.js 中管道和流的区别

javascript - 如何使用 Node 将表单数据(文本/纯文本)转换为json?

ios - cocoa touch 框架

python - 是否可以在没有 "any"框架的情况下使用 python 编写 Web 应用程序?

node.js - gulp.src 使用同步 globbing

node.js - 关注智威汤逊安全

node.js - neo4j 是否有可能限制收集的数据?