最近APP項目出了一個切換產品的需求,就是要通過構建來切換App的皮膚、logo、文字、圖片等,出了邏輯代碼和頁面結構,基本上其他的都要可切換。
一番考慮過後,果斷使用了gulp來實現。
思路是這樣:
在App項目文件夾下新建一個目錄,裏面放上四個目錄,分別是img,scss,i18n,config。在gulpfile.js中,有如下代碼:
//切換產品
gulp.task('switch',['sass'],function () {
var product = 'product1';
if(optionSkin.product ==='product2'){
product = 'product2'
}
//img
gulp.src('./product/img/'+product+'/**/*')
.pipe(imagemin())
.pipe(gulp.dest('./www/img'));
//i18n
gulp.src('./product/i18n/'+product+'/*.js')
.pipe(uglify())
.pipe(gulp.dest('./www/i18n'));
//config
gulp.src('./product/config/config-'+product+'.xml')
.pipe(rename(function (path) {
path.basename = 'config'
}))
.pipe(gulp.dest('.'));
//resources
gulp.src('./product/resources/'+product+'/**/*')
.pipe(imagemin())
.pipe(gulp.dest('./resources'))
});
運行 gulp switch 就會將product1想對應的文件打包到www文件目錄下,
運行 gulp switch –product product2就會切換到product2。
這樣就可以做到保持邏輯代碼一致的同時,去維護兩個產品的風格。