我的项目使用两个不同的代码库 - 一个用于桌面,一个用于移动。我想为两者使用相同的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
之类的标志以使用构建过程中的相应环境属性(最多)常见用例作为默认环境。似乎是最简单,最灵活的选择。