【问题标题】:Gulp plugin for non-file processing tasks用于非文件处理任务的 Gulp 插件
【发布时间】:2015-08-27 08:52:49
【问题描述】:

我想为一些实验性的东西写一个 gulp 插件。

插件只需要接受一个回调,当它的实验完成时,它会以true(实验成功)或false(实验失败)触发回调。

它与任何文件无关。

我找不到任何进行非文件处理的插件。

我的用例是每当我要发布我的项目时,我想尝试一些东西,如果实验失败,发布应该停止并终止,否则让发布在生产中进行。

那我应该怎么写这样的插件呢?

当然,gulp 插件应该返回一个流(如果我错了,请纠正我)。但在我的情况下,没有什么像流一样。

在文件处理中,gulp 插件接收一组文件。当最后一个文件处理完成时,任务也完成了,所以 gulp 知道执行下一个任务。 (如果我错了,请纠正我)

但就我而言,在插件代码中,我不会有任何承诺/完成回调。如何让 gulp 知道我的任务已完成?

我该如何处理我的案子?

【问题讨论】:

    标签: node.js gulp


    【解决方案1】:

    有一种简单的方法。

    这是一个例子:

    var gutil = require('gulp-util');
    
    gulp.task('MyTaskName', function(success) {
       var err;
    
       // Do whatever you want here
    
       // If you want to signal an error, define it like this
       err = new gutil.PluginError({
          plugin: 'MyTaskName',
          message: "<My Error Message>"
       });
    
       if (err) {
         // If something went wrong, throw an error
         throw err;
       }
    
       // Otherwise, all's good
       success();
    }
    

    【讨论】:

    • 这是 gulpfile 的一部分还是插件的代码?实际上我正在寻找插件的代码,而不是 gulp 文件的代码。
    • 你可能不需要插件,你能发布你的 gulp 文件吗?
    • 我把它写成一个插件给你。看看gulp-vanilla享受:)
    • 很高兴看到插件.. 但如果可能的话,我想付出更多努力来搜索/创建更好的答案.. 可能是其他方法。
    • 当然,如果您找到更方便的方法,请告诉我
    猜你喜欢
    • 1970-01-01
    • 2019-01-17
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多