"use strict"; var gulp = require('gulp'), autoprefixer = require('gulp-autoprefixer'), cssnano = require('gulp-cssnano'), jshint = require('gulp-jshint'), uglify = require('gulp-uglify'), rename = require('gulp-rename'), concat = require('gulp-concat'), notify = require('gulp-notify'), cache = require('gulp-cache'), livereload = require('gulp-livereload'), htmlmin = require('gulp-htmlmin'), inject = require('gulp-inject'), del = require('del'); gulp.task('scripts', function() { return gulp.src('app/js/**/*.js') .pipe(jshint('.jshintrc')) .pipe(jshint.reporter('default')) .pipe(concat('main.js')) .pipe(gulp.dest('dist/js')) .pipe(rename({suffix: '.min'})) .pipe(uglify()) .pipe(gulp.dest('dist/js')) .pipe(notify({ message: 'Scripts task complete' })); }); gulp.task('styles', function() { return gulp.src('app/css/**/*.css') .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) .pipe(gulp.dest('dist/css')) .pipe(rename({suffix: '.min'})) .pipe(cssnano()) .pipe(gulp.dest('dist/css')) .pipe(notify({ message: 'Styles task complete' })); }); gulp.task('partials', function() { gulp.src(['app/partials/**/*']).pipe(gulp.dest('dist/partials')); gulp.src(['app/libs/ejs_production.js']).pipe(gulp.dest('dist/libs')); }); gulp.task('minify-html', function () { var sources = gulp.src(['dist/**/*.min.js', 'dist/**/*.min.css'], {read: false}); var appstream = gulp.src(['dist/**/*.min.js'], {read:false}); return gulp.src(['app/*.html']).pipe(inject(gulp.src(['./dist/js/**/*.min.js', './dist/css/**/*.min.css'], {read: false}), { starttag: '"main": [', endtag: ']', transform: function (filepath, file, i, length) { return ' "' + filepath + '"' + (i + 1 < length ? ',' : ''); } })) .pipe(gulp.dest('dist')); /*.pipe(gulp.dest('./')); .pipe(inject(sources),{relative:true}) /!*.pipe(htmlmin({removeComments: true, collapseWhitespace: true, keepClosingSlash: true}))*!/ .pipe(gulp.dest('dist'));*/ }); gulp.task('clean', function() { return del(['dist']); }); gulp.task('default', ['clean'], function() { gulp.start('styles', 'scripts','partials','minify-html'); });