Last active
November 25, 2015 05:30
-
-
Save LoveAndHappiness/edccc1ecd22bc3ebe342 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*jslint white:true */ | |
/* Install All Packages */ | |
// npm install jquery bootstrap-sass vue vue-resource --save | |
// npm install gulp gulp-concat gulp-uglify gulp-sass gulp-minify-css gulp-sourcemaps gulp-rename browser-sync --save-dev | |
// bower install polymer --save | |
var gulp = require('gulp'); | |
var concat = require('gulp-concat'); | |
var uglify = require('gulp-uglify'); | |
var sass = require('gulp-sass'); | |
var minifyCss = require('gulp-minify-css'); | |
var sourcemaps = require('gulp-sourcemaps'); | |
var rename = require('gulp-rename'); | |
var browserSync = require('browser-sync'); | |
var reload = browserSync.reload; | |
var baseDir = 'app'; | |
var distDir = 'dist'; | |
/* Prepare Browser-sync for localhost */ | |
gulp.task('browser-sync', function() { | |
'use strict'; | |
browserSync.init(['app/**/*.css', 'app/**/*.js'], { | |
proxy: 'localhost.dev', | |
open: false, | |
browser: ['chrome'] | |
}); | |
}); | |
/* Copy files */ | |
gulp.task('copy', function () { | |
'use strict'; | |
gulp.src([ | |
'node_modules/jquery/dist/jquery.js', | |
'node_modules/bootstrap-sass/assets/javascripts/bootstrap.js', | |
'node_modules/vue/dist/vue.js', | |
'node_modules/vue-resource/dist/vue-resource.js', | |
'bower_components/webcomponentsjs/webcomponents.min.js', | |
'bower_components/webcomponentsjs/webcomponents-lite.min.js' | |
]) | |
.pipe(gulp.dest('resources/assets/js/libs')); | |
gulp.src([ | |
'node_modules/bootstrap-sass/assets/stylesheets/**/*.scss' | |
]) | |
.pipe(gulp.dest('resources/assets/sass/libs')); | |
}); | |
/* Concat scripts */ | |
gulp.task('scripts', function () { | |
'use strict'; | |
gulp.src([ | |
'resources/assets/js/libs/jquery.js', | |
'resources/assets/js/libs/bootstrap.js', | |
'resources/assets/js/libs/vue.js', | |
'resources/assets/js/libs/vue-resource.js', | |
'resources/assets/js/app.js' | |
]) | |
.pipe(concat('app.js')) | |
.pipe(gulp.dest(baseDir + '/js')); | |
}); | |
/* Compile scss */ | |
gulp.task('sass', function () { | |
'use strict'; | |
gulp.src([ | |
'resources/assets/sass/app.scss' | |
]) | |
.pipe(sass()) | |
.pipe(gulp.dest(baseDir + '/css')) | |
/* Reload the browser CSS after every change */ | |
.pipe(reload({stream:true})); | |
}); | |
/* Reload browser after file changes */ | |
gulp.task('bs-reload', function () { | |
'use strict'; | |
browserSync.reload(); | |
}); | |
/* Prepare Files for Production */ | |
gulp.task('build', function () { | |
'use strict'; | |
gulp.src([ | |
baseDir + '/css/app.css' | |
]) | |
.pipe(minifyCss()) | |
.pipe(sourcemaps.write()) | |
.pipe(rename('app.min.css')) | |
.pipe(gulp.dest(distDir + '/css')) | |
/* Reload the browser CSS after every change */ | |
.pipe(reload({stream:true})); | |
gulp.src([ | |
baseDir + '/js/app.js' | |
]) | |
.pipe(uglify()) | |
.pipe(rename('app.min.js')) | |
.pipe(gulp.dest(distDir + '/js')); | |
}); | |
/* Watch scss, js and php files */ | |
gulp.task('default', ['scripts', 'sass', 'browser-sync'], function () { | |
'use strict'; | |
/* Watch scss, run the sass task on change. */ | |
gulp.watch(['resources/assets/sass/**/*.scss'], ['sass']); | |
/* Watch app.js file, run the scripts task on change. */ | |
gulp.watch(['resources/assets/js/**/*.js'], ['scripts']); | |
/* Watch .html files, run the bs-reload task on change. */ | |
gulp.watch(['*.php', '*.html'], ['bs-reload']); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Install dependencies via npm first