From 07589b54d0aafb277de466cd48ca05c61f9911a9 Mon Sep 17 00:00:00 2001 From: printempw Date: Sun, 28 Aug 2016 11:49:22 +0800 Subject: [PATCH] use laravel elixir to compile assets --- .bowerrc | 2 +- .gitignore | 2 +- assets/css/.gitignore | 3 + assets/js/.gitignore | 3 + gulpfile.js | 197 +++++------------- package.json | 3 +- {assets/src => resources/assets}/js/admin.js | 0 {assets/src => resources/assets}/js/auth.js | 0 .../src => resources/assets}/js/skinlib.js | 0 {assets/src => resources/assets}/js/user.js | 0 {assets/src => resources/assets}/js/utils.js | 0 .../src => resources/assets}/sass/admin.scss | 0 resources/assets/sass/app.scss | 2 - .../src => resources/assets}/sass/auth.scss | 0 .../src => resources/assets}/sass/index.scss | 0 .../assets}/sass/install.scss | 0 .../assets}/sass/skinlib.scss | 0 .../src => resources/assets}/sass/style.scss | 0 .../src => resources/assets}/sass/user.scss | 0 19 files changed, 64 insertions(+), 148 deletions(-) create mode 100644 assets/css/.gitignore create mode 100644 assets/js/.gitignore rename {assets/src => resources/assets}/js/admin.js (100%) rename {assets/src => resources/assets}/js/auth.js (100%) rename {assets/src => resources/assets}/js/skinlib.js (100%) rename {assets/src => resources/assets}/js/user.js (100%) rename {assets/src => resources/assets}/js/utils.js (100%) rename {assets/src => resources/assets}/sass/admin.scss (100%) delete mode 100644 resources/assets/sass/app.scss rename {assets/src => resources/assets}/sass/auth.scss (100%) rename {assets/src => resources/assets}/sass/index.scss (100%) rename {assets/src => resources/assets}/sass/install.scss (100%) rename {assets/src => resources/assets}/sass/skinlib.scss (100%) rename {assets/src => resources/assets}/sass/style.scss (100%) rename {assets/src => resources/assets}/sass/user.scss (100%) diff --git a/.bowerrc b/.bowerrc index 75f53316..ae1b0707 100644 --- a/.bowerrc +++ b/.bowerrc @@ -1,3 +1,3 @@ { - "directory": "assets/bower_components" + "directory": "resources/assets/bower_components" } diff --git a/.gitignore b/.gitignore index 3f18fdcb..5f181bc8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,6 @@ vendor/* textures/* node_modules/* resources/cache/* -assets/bower_components/* +resources/assets/bower_components/* assets/dist/* koala-config.json diff --git a/assets/css/.gitignore b/assets/css/.gitignore new file mode 100644 index 00000000..8f4803c0 --- /dev/null +++ b/assets/css/.gitignore @@ -0,0 +1,3 @@ +* +!public/ +!.gitignore diff --git a/assets/js/.gitignore b/assets/js/.gitignore new file mode 100644 index 00000000..8f4803c0 --- /dev/null +++ b/assets/js/.gitignore @@ -0,0 +1,3 @@ +* +!public/ +!.gitignore diff --git a/gulpfile.js b/gulpfile.js index 0f06e0f4..a5a6d9d3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -2,175 +2,88 @@ * @Author: prpr * @Date: 2016-07-21 13:38:26 * @Last Modified by: printempw -* @Last Modified time: 2016-08-28 09:54:19 +* @Last Modified time: 2016-08-28 11:44:15 */ var gulp = require('gulp'), - jshint = require('gulp-jshint'), - concat = require('gulp-concat'), + elixir = require('laravel-elixir'), uglify = require('gulp-uglify'), - sass = require('gulp-ruby-sass'), + sass = require('gulp-sass'), cleanCss = require('gulp-clean-css'), - rename = require('gulp-rename'), - del = require('del'), - replace = require('gulp-replace') zip = require('gulp-zip'); -var elixir = require('laravel-elixir'); +require('laravel-elixir-replace'); var version = require('./package.json').version; -/** - * Copy files from bower_components to dist for later operations - */ -gulp.task('copy', function(cb) { +var vendor_js = [ + 'resources/assets/bower_components/jquery/dist/jquery.min.js', + 'resources/assets/bower_components/bootstrap/dist/js/bootstrap.min.js', + 'resources/assets/bower_components/AdminLTE/dist/js/app.min.js', + 'resources/assets/bower_components/bootstrap-fileinput/js/fileinput.min.js', + 'resources/assets/bower_components/bootstrap-fileinput/js/locales/zh.js', + 'resources/assets/bower_components/iCheck/icheck.min.js', + 'resources/assets/bower_components/toastr/toastr.min.js', + 'resources/assets/bower_components/sweetalert2/dist/sweetalert2.min.js', + 'resources/assets/bower_components/es6-promise/es6-promise.min.js' +]; - gulp.src('./assets/bower_components/jquery/dist/jquery.min.js') - .pipe(gulp.dest('./assets/libs/js/')); +var vendor_css = [ + 'resources/assets/bower_components/bootstrap/dist/css/bootstrap.min.css', + 'resources/assets/bower_components/AdminLTE/dist/css/AdminLTE.min.css', + 'resources/assets/bower_components/bootstrap-fileinput/css/fileinput.min.css', + 'resources/assets/bower_components/font-awesome/css/font-awesome.min.css', + 'resources/assets/bower_components/iCheck/skins/square/blue.css', + 'resources/assets/bower_components/toastr/toastr.min.css', + 'resources/assets/bower_components/sweetalert2/dist/sweetalert2.min.css' +]; - gulp.src('./assets/bower_components/bootstrap/dist/css/bootstrap.min.css') - .pipe(gulp.dest('./assets/libs/css/')); +var replacements = [ + ['@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);', ''], + ['blue.png', '"../images/blue.png"'], + ['blue@2x.png', '"../images/blue@2x.png"'] +]; - gulp.src('./assets/bower_components/bootstrap/dist/fonts/**') - .pipe(gulp.dest('./assets/fonts/')); +elixir(function(mix) { + mix + .scripts(vendor_js.concat( + 'resources/assets/src/js/utils.js' + ), 'assets/js/app.min.js', './') - gulp.src('./assets/bower_components/bootstrap/dist/js/bootstrap.min.js') - .pipe(gulp.dest('./assets/libs/js/')); + .styles(vendor_css, 'assets/css/app.min.css', './') - gulp.src('./assets/bower_components/AdminLTE/dist/css/AdminLTE.min.css') - .pipe(replace('@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);', '')) - .pipe(gulp.dest('./assets/libs/css/')); + .replace('assets/css/app.min.css', replacements) - gulp.src('./assets/bower_components/AdminLTE/dist/css/skins/**') - .pipe(gulp.dest('./assets/libs/skins/')); + .copy([ + 'resources/assets/bower_components/bootstrap/dist/fonts/**', + 'resources/assets/bower_components/font-awesome/fonts/**' + ], 'assets/fonts/') - gulp.src('./assets/bower_components/AdminLTE/dist/js/app.min.js') - .pipe(gulp.dest('./assets/libs/js/')); + .copy([ + 'resources/assets/bower_components/iCheck/skins/square/blue.png', + 'resources/assets/bower_components/iCheck/skins/square/blue@2x.png' + ], 'assets/images/') - gulp.src('./assets/bower_components/bootstrap-fileinput/css/fileinput.min.css') - .pipe(gulp.dest('./assets/libs/css/')); - - gulp.src(['./assets/bower_components/bootstrap-fileinput/js/fileinput.min.js', - './assets/bower_components/bootstrap-fileinput/js/locales/zh.js']) - .pipe(concat('fileinput.min.js')) - .pipe(gulp.dest('./assets/libs/js/')); - - gulp.src('./assets/bower_components/font-awesome/css/font-awesome.min.css') - .pipe(gulp.dest('./assets/libs/css/')); - - gulp.src('./assets/bower_components/font-awesome/fonts/**') - .pipe(gulp.dest('./assets/fonts/')); - - gulp.src('./assets/bower_components/iCheck/skins/square/blue.css') - .pipe(replace('blue.png', '"../images/blue.png"')) - .pipe(replace('blue@2x.png', '"../images/blue@2x.png"')) - .pipe(gulp.dest('./assets/libs/css/')); - - gulp.src('./assets/bower_components/iCheck/skins/square/blue.png') - .pipe(gulp.dest('./assets/images/')); - - gulp.src('./assets/bower_components/iCheck/skins/square/blue@2x.png') - .pipe(gulp.dest('./assets/images/')); - - gulp.src('./assets/bower_components/iCheck/icheck.min.js') - .pipe(gulp.dest('./assets/libs/js/')); - - gulp.src('./assets/bower_components/toastr/toastr.min.css') - .pipe(gulp.dest('./assets/libs/css/')); - - gulp.src('./assets/bower_components/toastr/toastr.min.js') - .pipe(gulp.dest('./assets/libs/js/')); - - gulp.src('./assets/bower_components/sweetalert2/dist/sweetalert2.min.css') - .pipe(gulp.dest('./assets/libs/css/')); - - gulp.src('./assets/bower_components/sweetalert2/dist/sweetalert2.min.js') - .pipe(gulp.dest('./assets/libs/js/')); - - gulp.src('./assets/bower_components/es6-promise/es6-promise.min.js') - .pipe(gulp.dest('./assets/libs/js/')); + .task('sass') + .task('scripts') }); -gulp.task('lint', function() { - return gulp.src('./assets/js/*.js') - .pipe(jshint()) - .pipe(jshint.reporter('default')); -}); - -gulp.task('lib-css', function() { - gulp.src([ - './assets/libs/css/bootstrap.min.css', - './assets/libs/css/AdminLTE.min.css', - './assets/libs/css/fileinput.min.css', - './assets/libs/css/font-awesome.min.css', - './assets/libs/css/blue.css', - './assets/libs/css/toastr.min.css', - './assets/libs/css/sweetalert2.min.css' - ]) - .pipe(concat('app.min.css')) - .pipe(cleanCss()) - .pipe(gulp.dest('./assets/dist/')) -}); - -gulp.task('lib-scripts', function() { - gulp.src([ - './assets/libs/js/jquery.min.js', - './assets/libs/js/bootstrap.min.js', - './assets/libs/js/app.min.js', - './assets/libs/js/icheck.min.js', - './assets/libs/js/fileinput.min.js', - './assets/libs/js/toastr.min.js', - './assets/libs/js/es6-promise.min.js', - './assets/libs/js/sweetalert2.min.js', - './assets/src/js/utils.js' - ]) - .pipe(concat('app.min.js')) - .pipe(uglify()) - .pipe(gulp.dest('./assets/dist/')) -}); - -/** - * Concat css and js files to one file - */ -gulp.task('concat', ['lib-css', 'lib-scripts']); - // compile sass -gulp.task('sass', function() { - return sass('./assets/src/sass/*.scss') - .on('error', function (error) { - console.error('Error!', error.message); - }) - .pipe(cleanCss()) - // .pipe(rename({'suffix': '.min'})) - .pipe(gulp.dest('./assets/dist/css')); -}) +gulp.task('sass', function () { + gulp.src('resources/assets/sass/*.scss') + .pipe(sass().on('error', sass.logError)) + .pipe(cleanCss()) + .pipe(gulp.dest('./assets/css')); +}); gulp.task('scripts', function() { - gulp.src([ - './assets/src/js/*.js', - '!./assets/src/js/utils.js' - ]) + gulp.src('resources/assets/js/*.js') .pipe(uglify()) - // .pipe(rename({'suffix': '.min'})) - .pipe(gulp.dest('./assets/dist/js')); - + .pipe(gulp.dest('./assets/js')); }); -gulp.task('minify', ['sass', 'scripts']); - -gulp.task('clean', function (cb) { - return del([ - './assets/libs/css/**', - './assets/libs/js/**' - ], cb); -}); - -gulp.task('build', ['concat', 'minify']); - // release gulp.task('zip', function() { - del('resources/cache/*'); - return gulp.src([ '**/*.*', 'LICENSE', @@ -196,5 +109,3 @@ gulp.task('zip', function() { .pipe(zip('blessing-skin-server-v'+version+'.zip')) .pipe(gulp.dest('../')); }); - -gulp.task('default', ['copy']); diff --git a/package.json b/package.json index 7f543ddd..12466984 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "gulp-ruby-sass": "^2.0.6", "gulp-uglify": "^1.5.4", "gulp-zip": "^3.2.0", - "laravel-elixir": "^5.0.0", + "laravel-elixir": "^6.0.0-10", + "laravel-elixir-replace": "^1.1.2" } } diff --git a/assets/src/js/admin.js b/resources/assets/js/admin.js similarity index 100% rename from assets/src/js/admin.js rename to resources/assets/js/admin.js diff --git a/assets/src/js/auth.js b/resources/assets/js/auth.js similarity index 100% rename from assets/src/js/auth.js rename to resources/assets/js/auth.js diff --git a/assets/src/js/skinlib.js b/resources/assets/js/skinlib.js similarity index 100% rename from assets/src/js/skinlib.js rename to resources/assets/js/skinlib.js diff --git a/assets/src/js/user.js b/resources/assets/js/user.js similarity index 100% rename from assets/src/js/user.js rename to resources/assets/js/user.js diff --git a/assets/src/js/utils.js b/resources/assets/js/utils.js similarity index 100% rename from assets/src/js/utils.js rename to resources/assets/js/utils.js diff --git a/assets/src/sass/admin.scss b/resources/assets/sass/admin.scss similarity index 100% rename from assets/src/sass/admin.scss rename to resources/assets/sass/admin.scss diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss deleted file mode 100644 index bb76e29c..00000000 --- a/resources/assets/sass/app.scss +++ /dev/null @@ -1,2 +0,0 @@ -// @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap"; - diff --git a/assets/src/sass/auth.scss b/resources/assets/sass/auth.scss similarity index 100% rename from assets/src/sass/auth.scss rename to resources/assets/sass/auth.scss diff --git a/assets/src/sass/index.scss b/resources/assets/sass/index.scss similarity index 100% rename from assets/src/sass/index.scss rename to resources/assets/sass/index.scss diff --git a/assets/src/sass/install.scss b/resources/assets/sass/install.scss similarity index 100% rename from assets/src/sass/install.scss rename to resources/assets/sass/install.scss diff --git a/assets/src/sass/skinlib.scss b/resources/assets/sass/skinlib.scss similarity index 100% rename from assets/src/sass/skinlib.scss rename to resources/assets/sass/skinlib.scss diff --git a/assets/src/sass/style.scss b/resources/assets/sass/style.scss similarity index 100% rename from assets/src/sass/style.scss rename to resources/assets/sass/style.scss diff --git a/assets/src/sass/user.scss b/resources/assets/sass/user.scss similarity index 100% rename from assets/src/sass/user.scss rename to resources/assets/sass/user.scss