Created
August 31, 2016 08:52
-
-
Save jirikrepl/2ba45e9220c8d2342129fbe700eaef9e 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
// Gulp with BrowserSync http://www.browsersync.io/docs/gulp/ | |
// Gulp with Symfony framework: http://knpuniversity.com/screencast/gulp | |
// run "gulp" in development environment | |
// run "gulp --production" in production environment | |
var gulp = require('gulp'), | |
minifyCss = require('gulp-minify-css'), | |
//less = require('gulp-less'), | |
concat = require('gulp-concat'), | |
uglify = require('gulp-uglify'), | |
sourcemaps = require('gulp-sourcemaps'), | |
plumber = require('gulp-plumber'), // http://knpuniversity.com/screencast/gulp/errors-call-the-plumber | |
util = require('gulp-util'), // http://knpuniversity.com/screencast/gulp/minify-only-production | |
rev = require('gulp-rev'), | |
browserSync = require('browser-sync').create(), | |
del = require('del'), | |
git = require('gulp-git'); | |
var c = function () { | |
var webRootDir = 'www/'; | |
return { | |
assetDir: webRootDir, | |
lessDir: webRootDir + 'css/', | |
buildDir: webRootDir + 'build/', | |
jsAssetsDir: webRootDir + 'js/', | |
manifestFile: 'rev-manifest.json' | |
} | |
}(); | |
var app = {}; | |
/** | |
* This function isolates (put in one place) logic for processing less.* -> css.* | |
* @param {Array} paths -- array with source paths | |
* @param {string} outputFilename -- if defined concat source files into that filename. In undefined do not concat files (for calculator's pages specific style file) | |
**/ | |
app.addStyle = function (paths, outputFilename) { | |
return gulp.src(paths) | |
.pipe(plumber()) | |
.pipe(sourcemaps.init()) | |
.pipe(outputFilename ? concat(outputFilename) : util.noop) // https://github.com/gulpjs/gulp-util#noop | |
//.pipe(less()) | |
.pipe(concat(outputFilename)) | |
.pipe(minifyCss({keepSpecialComments: 0})) | |
.pipe(rev()) | |
.pipe(sourcemaps.write('.')) | |
.pipe(gulp.dest(c.buildDir)) | |
// write to rev-manifest file | |
.pipe(rev.manifest(c.manifestFile, {merge: true})) | |
.pipe(gulp.dest('.')) | |
.pipe(browserSync.stream()); | |
}; | |
/** | |
* This function isolates (puts in one place) logic for processing javascript files. | |
* @param {Array} paths -- array with source paths | |
* @param {string} outputFilename -- if defined concat source files into that filename. In undefined do not concat files (for calculator's pages specific style file) | |
**/ | |
app.addJavaScript = function (paths, outputFilename) { | |
return gulp.src(paths) | |
.pipe(sourcemaps.init()) | |
.pipe(outputFilename ? concat(outputFilename) : util.noop) // https://github.com/gulpjs/gulp-util#noop | |
.pipe(c.production ? uglify() : uglify({mangle: false, compress: false})) | |
.pipe(rev()) | |
.pipe(sourcemaps.write('.')) | |
.pipe(gulp.dest(c.buildDir)) | |
// write to rev-manifest file | |
.pipe(rev.manifest(c.manifestFile, {merge: true})) | |
.pipe(gulp.dest('.')); | |
}; | |
app.deleteFiles = function (paths) { | |
del(paths, function (err, paths) { | |
console.log('Deleted files/folders:\n', paths.join('\n')); | |
}); | |
}; | |
gulp.task('delete-less', function () { | |
return app.deleteFiles([c.buildDir + '*.css', c.buildDir + '*.css.map']); | |
}); | |
gulp.task('less', ['delete-less'], function () { | |
return app.addStyle([c.lessDir + '*.css'], 'style.css'); | |
}); | |
gulp.task('delete-js', function () { | |
return app.deleteFiles([c.buildDir + '*.js', c.buildDir + '*.js.map']); | |
}); | |
gulp.task('js', ['delete-js'], function () { | |
app.addJavaScript([c.jsAssetsDir + 'timeGraph.js'], 'timeGraph.js'); | |
app.addJavaScript([c.jsAssetsDir + 'makeLesson.js'], 'makeLesson.js'); | |
}); | |
gulp.task('js-watch', ['js'], function () { | |
browserSync.reload(); | |
}); | |
gulp.task('serve', ['less', 'js'], function () { | |
browserSync.init({ | |
proxy: "http://localhost/nedatluj/www/" | |
}); | |
gulp.watch(c.lessDir + '*.css', ['less']); | |
gulp.watch(c.assetDir + '*').on('change', browserSync.reload); | |
gulp.watch(c.assetDir + 'html/*').on('change', browserSync.reload); | |
gulp.watch(c.assetDir + 'loginHtml/*').on('change', browserSync.reload); | |
gulp.watch(c.assetDir + 'js/*.js', ['js-watch']); | |
}); | |
gulp.task('default', ['serve']); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment