Snippets

Michael Schramm kEajb: Untitled snippet

You are viewing an old version of this snippet. View the current version.
Revised by Michael Schramm 469ff79
var gulp = require('gulp');
var sass = require('gulp-sass');
var bowerFiles = require('main-bower-files');
var concat = require('gulp-concat');
var sourceMaps = require('gulp-sourcemaps');
var templateCache = require('gulp-angular-templatecache');
var minifyCSS = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var size = require('gulp-size');
var eslint = require('gulp-eslint');

// local server logic
var browserSync = require('browser-sync').create();
var historyApiFallback = require('connect-history-api-fallback');


gulp.task('css', function(){
	var files = bowerFiles('**/*.css');
	files.push('custom/main.scss');

	return gulp.
			src(files)
			.pipe(sourceMaps.init())
			.pipe(sass())
			.pipe(concat("styles.css"))
			.pipe(minifyCSS())
			.pipe(sourceMaps.write('./'))
			.pipe(gulp.dest('public/static/'))
			.pipe(size({title: 'CSS', gzip: false}))
			.pipe(browserSync.stream({match: '**/*.css'}))
			;
});

// TODO fix lint errors
gulp.task('lint', function() {
	return gulp.src('custom/**/*.js')
			.pipe(eslint())
			.pipe(eslint.format())
			.pipe(eslint.failAfterError())
		;
});

gulp.task('js', function(){
	var files = bowerFiles('**/*.js');
	return gulp.src(files)
			.pipe(sourceMaps.init())
			//.pipe(uglify())
			.pipe(concat('scripts.js'))
			.pipe(sourceMaps.write('./'))
			.pipe(size({title: 'JS', gzip: false}))
			.pipe(gulp.dest('public/static/'))
			.on('end', browserSync.reload);
});

gulp.task('tpl', function() {
	return gulp.src('public/static/tpl/**/*.html')
			.pipe(templateCache(
					{
						filename:'templates.js',
						root: 'static/tpl/',
						templateHeader: 'angular.module("app.tpl", []).run(["$templateCache", function($templateCache) {'
					}
			))
			.pipe(size({title: 'TPL', gzip: false}))
			.pipe(gulp.dest('public/static/'))
			.on('end', browserSync.reload);
});

gulp.task('serve', ['js', 'css'], function() {
    var config = {
		settings: {
			client_id: client_id,
			marketplace: marketplace,
			site_id: site_id
		}
	};


	browserSync.init({
		ui: {
			port: basePort+3,
			weinre: {
				port: basePort+2
			}
		},
		port: basePort,
		snippetOptions: {
			rule: {
				match: /<\/head>/i,
				fn: function (snippet, match) {
					return '<script type="text/javascript">var mymarket = '+JSON.stringify(config)+';</script>'+snippet+match;
				}
			}
		},
		server: {
			baseDir: "./public",
			middleware: [
				historyApiFallback()
			]
		}
	});
});
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.