123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- 'use strict';
- var gulp = require('gulp');
- require('gulp-run-seq');
- var sass = require('gulp-sass');
- var autoprefixer = require("gulp-autoprefixer");
- var cleancss = require('gulp-clean-css');
- var rename = require("gulp-rename");
- var uglify = require("gulp-uglify");
- var sourcemaps = require('gulp-sourcemaps');
- var cssbeautify = require('gulp-cssbeautify');
- var lec = require('gulp-line-ending-corrector');
- var concat = require('gulp-concat');
- var wait = require('gulp-wait');
- var print = require('gulp-print').default;
- var cleanCssOptions = {
- compatibility: 'ie7',
- keepSpecialComments: '*',
- rebase: false
- };
- var path = {
- sass: 'src/main/sass',
- src: {
- css: 'src/main/resources/META-INF/resources/static/css',
- plugins: 'src/main/resources/META-INF/resources/static/plugins',
- scripts: 'src/main/resources/META-INF/resources/static/scripts'
- },
- output: {
- css: 'src/main/resources/META-INF/resources/static/css',
- plugins: 'src/main/resources/META-INF/resources/static/plugins',
- scripts: 'src/main/resources/META-INF/resources/static/scripts'
- }
- };
- gulp.task('sass-bootstrap', function(end) {
- // Bootstrap 3
- gulp.src(path.sass + '/custom/bootstrap.scss')
- .pipe(sass())
- .pipe(cssbeautify())
- //.pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.plugins + '/bootstrap/css'))
- .pipe(print(function(filepath) {
- return "sass: " + filepath;
- }))
- .on('end', function(){
- end.notify('sass-bootstrap-end', function() {});
- });
- });
- gulp.task('sass-custom', function(end) {
- // 组件
- gulp.src([
- path.sass + '/custom/*.scss',
- '!' + path.sass + '/custom/bootstrap.scss'
- ])
- .pipe(sass())
- .pipe(autoprefixer())
- .pipe(cssbeautify())
- //.pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.css))
- .pipe(print(function(filepath) {
- return "sass: " + filepath;
- }))
- .on('end', function(){
- end.notify('sass-custom-end', function() {});
- });
- });
- gulp.task('sass-themes', function(end) {
- // 主题
- gulp.src(path.sass + '/custom/themes/*.scss')
- .pipe(sass())
- .pipe(autoprefixer())
- .pipe(cssbeautify())
- //.pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.css + '/themes'))
- .pipe(print(function(filepath) {
- return "sass: " + filepath;
- }))
- .on('end', function(){
- end.notify('sass-themes-end', function() {});
- });
- });
- //*** SASS 编译
- gulp.task('sass', ['sass-bootstrap', 'sass-custom', 'sass-themes']);
- //*** CSS 压缩任务
- gulp.task('minify-bootstrap', ['sass-bootstrap'], function(end) {
- end.wait('sass-bootstrap-end');
- gulp.src([
- path.src.plugins + '/bootstrap/css/*.css',
- '!' + path.src.plugins + '/bootstrap/css/*.min.css'
- ])
- .pipe(sourcemaps.init())
- .pipe(cleancss(cleanCssOptions))
- .pipe(rename({ suffix: '.min' }))
- .pipe(sourcemaps.write('./', { includeContent: false }))
- //.pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.plugins + '/bootstrap/css'))
- .pipe(print(function(filepath) {
- return "minify-bootstrap: " + filepath;
- }));
- });
- gulp.task('minify-custom', ['sass-custom'], function(end) {
- end.wait('sass-custom-end');
- gulp.src([
- path.src.css + '/*.css',
- '!' + path.src.css + '/*.min.css'
- ])
- .pipe(sourcemaps.init())
- .pipe(cleancss(cleanCssOptions))
- .pipe(rename({ suffix: '.min' }))
- .pipe(sourcemaps.write('./', { includeContent: false }))
- //.pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.css))
- .pipe(print(function(filepath) {
- return "minify-css: " + filepath;
- }));
- });
- gulp.task('minify-themes', ['sass-themes'], function(end) {
- end.wait('sass-themes-end');
- gulp.src([
- path.src.css + '/themes/*.css',
- '!' + path.src.css + '/themes/*.min.css'
- ])
- .pipe(sourcemaps.init())
- .pipe(cleancss(cleanCssOptions))
- .pipe(rename({ suffix: '.min' }))
- .pipe(sourcemaps.write('./', { includeContent: false }))
- //.pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.css + '/themes'))
- .pipe(print(function(filepath) {
- return "minify-css: " + filepath;
- }));
- });
- gulp.task('minify-css', ['minify-bootstrap', 'minify-custom', 'minify-themes']);
- //*** JS 压缩任务
- gulp.task('minify-scrpits', function(end) {
- //js 压缩
- gulp.src([
- path.src.scripts + '/*.js',
- '!' + path.src.scripts + '/*.min.js'
- ])
- .pipe(sourcemaps.init())
- .pipe(uglify({ output: { ascii_only: true } }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(sourcemaps.write('./', { includeContent: false }))
- .pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.scripts))
- .pipe(print(function(filepath) {
- return "minify-js: " + filepath;
- }));
- });
- gulp.task('minify-bootstrap-modal', function(end) {
- gulp.src([
- path.src.plugins + '/bootstrap-modal/js/bootstrap-modalmanager.js',
- path.src.plugins + '/bootstrap-modal/js/bootstrap-modal.js'
- ])
- .pipe(sourcemaps.init())
- .pipe(concat('bootstrap-modal-all.js'))
- .pipe(gulp.dest(path.output.plugins + '/bootstrap-modal/js'))
- .pipe(uglify({ output: { ascii_only: true } }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(sourcemaps.write('./', { includeContent: false }))
- .pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.plugins + '/bootstrap-modal/js'))
- .pipe(print(function(filepath) {
- return "minify-js: " + filepath;
- }));
- });
- gulp.task('minify-bootstrap-pagination', function(end) {
- gulp.src([
- path.src.plugins + '/bootstrap-pagination/bootstrap-pagination.js'
- ])
- .pipe(sourcemaps.init())
- .pipe(uglify({ output: { ascii_only: true } }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(sourcemaps.write('./', { includeContent: false }))
- .pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.plugins + '/bootstrap-pagination'))
- .pipe(print(function(filepath) {
- return "minify-js: " + filepath;
- }));
- });
- gulp.task('minify-common-grid', function(end) {
- gulp.src([
- path.src.plugins + '/jqwidgets/common-grid.js'
- ])
- .pipe(sourcemaps.init())
- .pipe(uglify({ output: { ascii_only: true } }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(sourcemaps.write('./', { includeContent: false }))
- .pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.plugins + '/jqwidgets'))
- .pipe(print(function(filepath) {
- return "minify-js: " + filepath;
- }));
- gulp.src([
- path.src.plugins + '/video.js/videojs-contrib-hls.js'
- ])
- .pipe(sourcemaps.init())
- .pipe(uglify({ output: { ascii_only: true } }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(lec({ eolc: 'CRLF', encoding: 'utf8' }))
- .pipe(gulp.dest(path.output.plugins + '/video.js'))
- .pipe(print(function(filepath) {
- return "minify-js: " + filepath;
- }));
- });
- gulp.task('minify-js', ['minify-scrpits', 'minify-bootstrap-modal', 'minify-bootstrap-pagination', 'minify-common-grid']);
- gulp.task('default', ['minify-css', 'minify-js']);
|