【问题标题】:how to pass file as argument to gulp task如何将文件作为参数传递给 gulp 任务
【发布时间】:2015-09-22 11:15:15
【问题描述】:

我需要一些关于我的 gulp 任务的帮助。

我有 gulp karma 任务,我想将 karma 配置文件作为参数传递给该任务。 我能够做到这一点。就像在 grunt 中一样,我们可以使用

grunt.option("file")

我们可以将 grunt 任务称为

grunt taskName --file=myFileName

那么我怎样才能用 gulp 达到同样的效果呢?

【问题讨论】:

    标签: gruntjs gulp


    【解决方案1】:

    gulp 中没有任何内容可以为您解析命令行参数。 喜欢的话可以直接使用node的全局process.argv。 我喜欢使用 yargs 模块来处理我的 gulpfiles 中的参数。

    var args = require('yargs').argv;
    var karmaFile = argv.file; // for the argument --file="myFileName"
    

    【讨论】:

      【解决方案2】:

      添加到@kombucha 的答案,这是一个如何使用 process.argv 的示例。如果在你的情况下你通过了:

      gulp taskName --file myFileName
      

      (没有 '=' )然后下面将检索文件值:

      var filename, i = process.argv.indexOf("--file");
      if(i>-1) {
          filename = process.argv[i+1];
      }
      

      将上述内容转换为用于检索命令行值的通用函数应该足够简单。我以前用过这个效果很好:

      function getCLValue(name) {
          var i = process.argv.indexOf(name);
          return (i>-1) ? process.argv[i+1] : null;
      }
      

      【讨论】:

        猜你喜欢
        • 2015-04-16
        • 2016-07-07
        • 1970-01-01
        • 2019-03-10
        • 2019-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多