Skip to content

Instantly share code, notes, and snippets.

@LoveAndHappiness
Last active November 25, 2015 05:30
Show Gist options
  • Save LoveAndHappiness/edccc1ecd22bc3ebe342 to your computer and use it in GitHub Desktop.
Save LoveAndHappiness/edccc1ecd22bc3ebe342 to your computer and use it in GitHub Desktop.
/*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']);
});
@LoveAndHappiness
Copy link
Author

Install dependencies via npm first

npm install jquery bootstrap-sass vue vue-resource --save
npm install gulp gulp-concat gulp-uglify gulp-sass gulp-minify-css gulp-sourcemaps browser-sync --save-dev
bower install polymer --save

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment