Gulp 为特定的气体流量发送丑陋的参数

Gulp 为特定的气体流量发送丑陋的参数,gulp,concat,uglifyjs,Gulp,Concat,Uglifyjs,问题: 拥有多个用于丑化不同javascript捆绑包的任务,并且只想通过自己的部署任务在生产环境中丑化它 解决方案: 太冗长了,无法单独定义每个任务。 对于这个问题来说,使用yargs获取参数也是一种非常困难的方法。思考了一会儿,为自己找到了完美的解决方案 例如,我有一个连接javascript文件的吞咽任务: gulp.task('concat', function() { var stream = gulp .src('public/js/**/*.js') .pipe

问题: 拥有多个用于丑化不同javascript捆绑包的任务,并且只想通过自己的部署任务在生产环境中丑化它

解决方案: 太冗长了,无法单独定义每个任务。
对于这个问题来说,使用yargs获取参数也是一种非常困难的方法。

思考了一会儿,为自己找到了完美的解决方案

例如,我有一个连接javascript文件的吞咽任务:

gulp.task('concat', function() {
  var stream = gulp
    .src('public/js/**/*.js')
    .pipe(concat('bundle.js'));
  if (ugly) {
    stream
      .pipe(uglify());
  }
  return stream
    .pipe(gulp.dest('public/dist'));
});
如您所见,我检查丑陋变量是否在任务中设置,因此我所要做的就是创建一个在concat任务之前触发的任务,并将丑陋变量设置为true

您可以创建这样一个函数,但一定要确保这两个任务函数的作用域都可以访问丑陋的变量

var ugly;
gulp.task('set-ugly', function() {
  ugly = true;
});
最后但并非最不重要的一点是GulpDeploy任务,第一个任务集为

gulp.task('deploy', ['set-ugly', 'concat']);

您还可以对任务中需要使用的任何其他变量使用此方法。

您可以在管道中使用此方法测试环境变量并仅在需要时执行丑陋步骤。

如果我想将其应用于任务而不基于环境,则此方法无效。嗯,对于环境变量,可以使用在解决方案中定义的相同变量,并避免停止管道流动。你会得到同样的结果,但对我来说,它更容易阅读。