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



我的项目使用两个不同的代码库 - 一个用于桌面,一个用于移动。我想为两者使用相同的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 带有"桌面/"或" mweb/",基于我要编译的代码

的代码

理想情况下,任务将足够通用到我可以通过不同的文件(也许使用函数参数和/或变量)的位置,但是在使用Gulp努力实现此目标。

我到目前为止尝试了:

我的第一种方法是创建两个单独的构建任务:"桌面构建"one_answers"移动构建",但是这种方法感觉肿又多余。

我建议查看此问题将参数传递给任务。您可以定义一个environment变量对象,该对象包含环境名称,前缀,文件列表和任何其他有用的信息,然后检查一个像 gulp build --desktop之类的标志以使用构建过程中的相应环境属性(最多)常见用例作为默认环境。似乎是最简单,最灵活的选择。

最新更新