当前位置: 首页 > 知识库问答 >
问题:

吞咽-使用参数启动任务

秦昂然
2023-03-14

因此,我正在尝试创建一个gulp工作流,并且我想为一些任务实现一些选项,比如gulp copy image--changed。现在,我创建了一个监视任务,它显然监视所有的图像文件,并且应该使用--changed标志启动copy images

理想情况下,我想这样做:

gulp.task('copy-images', function(){
    // some code
});

gulp.task('watch', function(){
    gulp.watch(config.images, ['copy-images --changed']);
});

我也非常清楚我可以做到:

gulp.task('copy-images', function(){
    // some code
});

gulp.task('copy-images-changed', function(){
    // some code
});

gulp.task('watch', function(){
    gulp.watch(config.images, ['copy-images']);
});

但这意味着重复的代码。
有人有解决方案或一些建议吗?

提前感谢!

共有1个答案

景明诚
2023-03-14

Gulp不提供为任务指定选项的内置方式。您必须使用外部选项解析器模块,如yargs。有关该主题的更多信息,请参见此问题。

这也意味着将类似于['copy-images--changed']的内容传递到gulp。watch()将不起作用。整个字符串将仅解释为任务名称。

对你来说,最好的方法是将你的任务的代码分解成一个函数,然后从你的任务和手表中调用这个函数:

var argv = require('yargs').argv;

function copyImages(opts) {
  if (opts.changed) {
    // some code
  } else {
    // some other code
  }
}

gulp.task('copy-images', function() {
  copyImages(argv);
});

gulp.task('watch', function(){
    gulp.watch(config.images, function() {
      copyImages({changed:true});
    });
});

以上内容应涵盖您的所有基础:

  • 吞下复制图像将执行//其他一些代码
 类似资料:
  • 我一直在玩CompletableFuture,发现了一件奇怪的事情。 如果在我的thenAccept调用中,断言失败,则不会传播异常。当时我尝试了更丑陋的东西: 不会发生任何事情,不会传播任何异常。我尝试使用诸如handle等方法以及与CompletableFutures中异常相关的其他方法,但失败了-没有一个方法像预期的那样传播异常。 当我调试CompletableFuture时,它会捕获如下异

  • 嗨,我在运行gulp watch时遇到这个错误。我在拉拉维尔项目中使用vueify。为什么会发生这种情况。这几天工作得很好,今天收到了。 这是我的gulpfile.js

  • 我正在使用quickstart原型构建一个Jersey Moxy服务。我的代码运行良好,我可以得到一些JSON返回。然而,在我开发的过程中,如果我犯了一个错误,比如说请求处理程序有一个不支持的类型,我将得到一个空的500响应,这使得调试变得困难。例如,如果我用@XmlElementRef错误地修饰了一个属性,我将得到如下响应: 服务器将表现得好像什么都没发生一样: 我尝试使用日志配置文件: 这产生

  • 比如说,您正在主干上构建一个项目,需要按特定顺序加载脚本,例如需要在。 我怎样才能让它在脚本中保持有序? 我的,但由于文件是按字母顺序组织的,gulp将显示下划线。js在,以及我的不重要,它查看目录中的文件。 有人对此有想法吗? 我最好的主意是用,,重命名供应商脚本,以给他们正确的顺序,但我不确定我是否喜欢这样。 随着我了解的越来越多,我发现布朗瑟夫是一个很好的解决方案,起初可能会很痛苦,但它很棒

  • 我有一段代码: 我使用eslint和设置对象速记规则。 并获取以下错误: 但是为什么呢?有没有其他方法可以发现违反了什么规则? 如果我这样做: 我明白了: 很明显出了什么问题。伟大的 那么,我怎么才能知道发生了什么?eslint要求对象速记(正如我告诉它的那样),但它不接受它们。。。还有别的原因吗? 总是出现这些错误会分散注意力。 非常感谢您的帮助。 (我正在使用最新的一口eslint:1.0.0

  • /应用程序 index.html --sass ----style.scss --/css ----style.css Gulp CLI版本2.0.1和本地版本4.0.0 运行可以正确运行sass函数并编译我的sass文件。运行启动手表。。。 如果我在style.scss中更改一些样式并保存文件,我会得到: 但没有任何更改传播到css/style.css. 任何帮助都将不胜感激。

  • 我试图提交一个带有JSON内容的帖子。我总是收到这样的信息:

  • 我使用GROP任务来缩小css和js文件,但是每次打开GROP都会出现这个错误。我寻找任何解决办法,但仍然没有找到问题。 Gulp任务:命令失败:Gulp--Tasks simple--cwd“c:\wamp64\www\Gulp_p”--gulpfile“c:\wamp64\www\Gulp_p\gulpfile.js”assert.js:374 throw err;^AssertionErro