eapp
Version:
121 lines (110 loc) • 3.52 kB
JavaScript
var gulp = require('gulp'),
runSequence = require('run-sequence'),
clean = require('gulp-clean')
,gulpHtmlVersion = require('gulp-html-version');
// 重命名
var rename=require('gulp-rename');
// 压缩js;
var minify = require('gulp-uglify');
// 解析ES6的js语法
// var babel = require('gulp-babel');
//合并文件
var concat = require('gulp-concat');
// 压缩css;
var minifyCss = require('gulp-minify-css');
// 提示
var notify = require('gulp-notify');
// 编译前根文件夹
var sourceFolder = 'Eapp-¥{{dirName}}¥/eapp_lib';
// 编译后根文件夹
var targetFolder = 'Eapp-¥{{dirName}}¥/eapp_lib';
/**
* 清理dist目录
*/
gulp.task('clean', function () {
return gulp.src(targetFolder, {read: false}).pipe(clean());
});
/*=====================copy其他静态资源文件==========================*/
gulp.task('copy', function() {
return gulp.src([sourceFolder + '/**/*'])
.pipe(gulp.dest(targetFolder))
});
/*=====================合并js==========================*/
gulp.task('concatIbox',function(){
return gulp.src([targetFolder + '/IboxEngine.js',
targetFolder + '/IEappApi.Base.js',
targetFolder + '/IEappApi.js'
]) //选择合并的JS
.pipe(concat('/Ibox+IEappApi+Base.js')) //合并js
//.pipe(babel({
// presets: ['@babel/env']
//}))
//.pipe(minify()) //压缩
//.pipe(rename({suffix:'.min'})) //重命名
.pipe(gulp.dest(targetFolder)) //输出
.pipe(notify({message:"Ibox合并成功!"}))//提示
});
/*=====================合并js==========================*/
gulp.task('concat¥{{fileName}}¥',function(){
return gulp.src([targetFolder + '/I¥{{fileName}}¥.js',
targetFolder + '/I¥{{fileName}}¥.Base.js'
]) //选择合并的JS
.pipe(concat('/I¥{{fileName}}¥+Base.js')) //合并js
.pipe(gulp.dest(targetFolder)) //输出
.pipe(notify({message:"I¥{{fileName}}¥合并成功!"}))//提示
});
/*=====================压缩js==========================*/
gulp.task('js', function(){
return gulp.src([targetFolder + '/**/*.js',
'!'+targetFolder+'/**/*.min.js',
'!'+targetFolder+'/**/libs/**',
'!'+targetFolder+'/**/global/**',
'!'+targetFolder+'/**/list/**']) // 匹配
//.pipe(babel({
// "presets":["es2015","stage-0"],
// "plugins": ["transform-runtime"]
//}))
.pipe(minify())
.pipe(rename({suffix:'.min'}))
//.pipe(rev())
.pipe(gulp.dest(targetFolder));
});
/*=====================压缩css==========================*/
gulp.task('css', function(){
return gulp.src([targetFolder + '/**/*.css',
'!'+targetFolder+'/**/libs/**',
'!'+targetFolder+'/**/global/**',
'!'+targetFolder+'/**/list/**']) //匹配
.pipe(minifyCss())
.pipe(gulp.dest(targetFolder));
});
gulp.task('revHtml', function () {
return gulp.src(targetFolder + '/**/*.html')
.pipe(gulpHtmlVersion({
paramName: 'v',// 参数
paramType: 'version', // 生成值类型 guid version timestamp
suffix: ['css', 'js', 'jpg', 'png'] // 文件类型
}))
.pipe(gulp.dest(targetFolder));
});
// gulp4.0.0版本之前编译
//gulp.task('default', function (done) {
// runSequence(
// 'clean',
// 'copy',
// 'js',
// 'alljs',
// 'css',
// 'revHtml',
// done);
//});
// gulp4.0.0版本编译
gulp.task('default', gulp.series(
//'clean',
//'copy',
'concatIbox',
'concat¥{{fileName}}¥',
'js'
//'css',
//'revHtml'
));