如何将我的gulp任务合并为一个?

时间:2017-03-14 19:34:06

标签: javascript gulp

我的项目使用两种不同的代码库 - 一种用于桌面,另一种用于移动。我想为两者使用相同的gulp“构建”任务。我对桌面的“构建”任务看起来像这样:

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实现这一点。

到目前为止我尝试了什么:

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

1 个答案:

答案 0 :(得分:0)

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