Javascript 我如何将吞咽任务合并为一个任务?

Javascript 我如何将吞咽任务合并为一个任务?,javascript,gulp,Javascript,Gulp,我的项目使用两种不同的代码库——一种用于桌面,另一种用于移动设备。我想对两者使用相同的“构建”任务。我的桌面的“构建”任务如下所示: gulp.task('build', function() { return gulp.src([ 'file1.js', 'file2.js', 'file3.js', 'file4.js', 'file5.js', 'file6.js', 'file7.js', 'file8.js',

我的项目使用两种不同的代码库——一种用于桌面,另一种用于移动设备。我想对两者使用相同的“构建”任务。我的桌面的“构建”任务如下所示:

gulp.task('build', function() {
  return gulp.src([
    'file1.js',
    'file2.js',
    'file3.js',
    'file4.js',
    'file5.js',
    'file6.js',
    'file7.js',
    'file8.js',
    'file9.js',
    'file10.js',
  ])
  .pipe(concat('bundle.js'))
  .pipe(uglify())
  .pipe(gulp.dest('desktop/dist'));
});
这些任务之间的唯一区别是:

1) 连接到bundle.js的文件列表

2) 前缀dist/bundle.js带有“desktop/”或“mweb/”,这是基于我编译代码的平台

理想情况下,该任务将足够通用,以便我可以传入不同的文件数组(可能使用函数参数和/或变量),但我正在努力使用gulp实现这一点

到目前为止我所尝试的:


我的第一种方法是创建两个独立的构建任务,“桌面构建”和“移动构建”,但这种方法感觉臃肿和冗余。

我建议看一下这个问题。例如,您可以定义一个
环境
变量对象,该对象包含环境名称、前缀、文件列表和任何其他有用信息,然后检查类似于
gulp build--desktop的标志,以便在生成过程中使用相应的环境属性,使用最常见的用例作为默认环境。似乎是最简单、最灵活的选择