我的项目使用两种不同的代码库 - 一种用于桌面,另一种用于移动。我想为两者使用相同的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实现这一点。
到目前为止我尝试了什么:
我的第一个方法是创建两个单独的构建任务,“桌面构建”和“移动构建”,但这种方法感觉臃肿和多余。
答案 0 :(得分:0)
我建议您查看此问题Pass Parameter to Gulp Task。例如,您可以定义包含环境名称,前缀,文件列表和任何其他有用信息的environment
变量对象,然后检查类似gulp build --desktop
的标志以使用相应的环境属性在构建过程中,将最常见的用例作为默认环境。似乎是最简单,最灵活的选择。