blessing-skin-server/gulpfile.js

129 lines
4.4 KiB
JavaScript
Raw Normal View History

2016-07-21 22:01:57 +08:00
/*
* @Author: prpr
* @Date: 2016-07-21 13:38:26
2016-07-22 08:54:50 +08:00
* @Last Modified by: printempw
2016-09-14 22:44:30 +08:00
* @Last Modified time: 2016-09-14 22:36:51
2016-07-21 22:01:57 +08:00
*/
2016-07-22 08:54:50 +08:00
var gulp = require('gulp'),
2016-08-28 11:49:22 +08:00
elixir = require('laravel-elixir'),
2016-07-22 08:54:50 +08:00
uglify = require('gulp-uglify'),
2016-08-28 11:49:22 +08:00
sass = require('gulp-sass'),
2016-07-22 08:54:50 +08:00
cleanCss = require('gulp-clean-css'),
2016-08-28 18:34:41 +08:00
del = require('del'),
2016-07-23 16:24:44 +08:00
zip = require('gulp-zip');
2016-08-28 11:49:22 +08:00
require('laravel-elixir-replace');
2016-08-28 10:05:21 +08:00
2016-09-14 22:44:30 +08:00
var path = require('path');
var version = require('./package.json').version;
2016-07-21 22:01:57 +08:00
2016-08-28 11:49:22 +08:00
var vendor_js = [
2016-09-14 22:44:30 +08:00
'resources/src/bower_components/jquery/dist/jquery.min.js',
'resources/src/bower_components/bootstrap/dist/js/bootstrap.min.js',
'resources/src/bower_components/AdminLTE/dist/js/app.min.js',
'resources/src/bower_components/bootstrap-fileinput/js/fileinput.min.js',
'resources/src/bower_components/bootstrap-fileinput/js/locales/zh.js',
'resources/src/bower_components/iCheck/icheck.min.js',
'resources/src/bower_components/toastr/toastr.min.js',
'resources/src/bower_components/sweetalert2/dist/sweetalert2.min.js',
'resources/src/bower_components/es6-promise/es6-promise.min.js'
2016-08-28 11:49:22 +08:00
];
var vendor_css = [
2016-09-14 22:44:30 +08:00
'resources/src/bower_components/bootstrap/dist/css/bootstrap.min.css',
'resources/src/bower_components/AdminLTE/dist/css/AdminLTE.min.css',
'resources/src/bower_components/bootstrap-fileinput/css/fileinput.min.css',
'resources/src/bower_components/font-awesome/css/font-awesome.min.css',
'resources/src/bower_components/iCheck/skins/square/blue.css',
'resources/src/bower_components/toastr/toastr.min.css',
'resources/src/bower_components/sweetalert2/dist/sweetalert2.min.css'
2016-08-28 11:49:22 +08:00
];
var replacements = [
['@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);', ''],
2016-09-14 22:44:30 +08:00
['../fonts/fontawesome', '../../fonts/fontawesome'],
['blue.png', '"../../images/blue.png"'],
['blue@2x.png', '"../../images/blue@2x.png"'],
['../img/loading.gif', '"../../images/loading.gif"'],
['../img/loading-sm.gif', '"../../images/loading-sm.gif"']
2016-08-28 11:49:22 +08:00
];
elixir(function(mix) {
mix
2016-08-28 18:34:41 +08:00
.scripts(vendor_js.concat([
'resources/assets/js/utils.js'
2016-09-14 22:44:30 +08:00
]), 'resources/dist/js/app.min.js', './')
2016-08-28 11:49:22 +08:00
2016-09-14 22:44:30 +08:00
.styles(vendor_css, 'resources/dist/css/app.min.css', './')
.replace('resources/dist/css/app.min.css', replacements)
2016-08-28 11:49:22 +08:00
2016-08-28 18:34:41 +08:00
// copy fonts & images
2016-08-28 11:49:22 +08:00
.copy([
2016-09-14 22:44:30 +08:00
'resources/src/bower_components/bootstrap/dist/fonts/**',
'resources/src/bower_components/font-awesome/fonts/**'
], 'resources/fonts/')
2016-08-28 11:49:22 +08:00
.copy([
2016-09-14 22:44:30 +08:00
'resources/src/bower_components/iCheck/skins/square/blue.png',
'resources/src/bower_components/iCheck/skins/square/blue@2x.png',
'resources/src/bower_components/bootstrap-fileinput/img/loading.gif',
'resources/src/bower_components/bootstrap-fileinput/img/loading-sm.gif'
], 'resources/images/')
2016-08-28 11:49:22 +08:00
.task('sass')
2016-08-28 18:34:41 +08:00
.task('uglify');
2016-07-21 22:01:57 +08:00
});
2016-08-28 11:49:22 +08:00
// compile sass
gulp.task('sass', function () {
2016-09-14 22:44:30 +08:00
gulp.src('resources/src/sass/*.scss')
2016-08-28 11:49:22 +08:00
.pipe(sass().on('error', sass.logError))
2016-07-21 22:01:57 +08:00
.pipe(cleanCss())
2016-09-14 22:44:30 +08:00
.pipe(gulp.dest('./resources/dist/css'));
2016-07-21 22:01:57 +08:00
});
2016-08-28 18:34:41 +08:00
gulp.task('uglify', function() {
2016-09-14 22:44:30 +08:00
gulp.src('resources/src/js/*.js')
2016-07-21 22:01:57 +08:00
.pipe(uglify())
2016-09-14 22:44:30 +08:00
.pipe(gulp.dest('./resources/dist/js'));
2016-07-21 22:01:57 +08:00
});
2016-07-23 16:24:44 +08:00
// release
gulp.task('zip', function() {
2016-08-28 18:34:41 +08:00
// delete cache files
del([
'storage/logs/*',
'storage/framework/cache/*',
'storage/framework/sessions/*',
'storage/framework/views/*'
]);
2016-07-23 16:24:44 +08:00
return gulp.src([
'**/*.*',
2016-07-29 16:13:21 +08:00
'LICENSE',
2016-07-24 11:13:41 +08:00
'!tests/**/*.*',
2016-07-23 16:24:44 +08:00
'!node_modules/**/*.*',
'!textures/**/*.*',
'!.env',
'!.bowerrc',
'!.gitignore',
'!.git/**/*.*',
'!.git/',
2016-08-28 18:34:41 +08:00
'!artisan',
2016-07-23 16:24:44 +08:00
'!koala-config.json',
'!gulpfile.js',
'!package.json',
'!composer.json',
'!composer.lock',
'!bower.json',
2016-08-28 18:34:41 +08:00
'!resources/assets/**/*.*',
2016-07-23 16:24:44 +08:00
'!.sass-cache/**/*.*',
2016-08-28 18:34:41 +08:00
'!.sass-cache/',
'!storage/logs/*.*',
// do not pack vendor since laravel contains huge dependencies
'!vendor/**/*.*'
2016-07-23 16:24:44 +08:00
], { dot: true })
2016-08-06 22:15:15 +08:00
.pipe(zip('blessing-skin-server-v'+version+'.zip'))
2016-08-20 21:59:09 +08:00
.pipe(gulp.dest('../'));
2016-07-23 16:24:44 +08:00
});