Last active
March 16, 2016 18:13
-
-
Save simofacc/ba8078e7e54ff6a54418 to your computer and use it in GitHub Desktop.
Gulp setup
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
/** | |
* Created by simonfacciol on 13/02/16. | |
*/ | |
var gulp = require('gulp'), | |
fs = require('fs'), | |
del = require('del'), | |
plugins = require('gulp-load-plugins')({ | |
pattern: ['gulp-*', 'gulp.*'], | |
replaceString: /\bgulp[\-.]/, | |
lazy: true, | |
camelize: true | |
}), | |
sassOptions = {outputStyle: 'expanded'}, | |
autoprefixerOptions = { | |
browsers: ['last 2 versions', '> 10%', 'Explorer >= 9', 'Android >= 4.1', 'Safari >= 7', 'iOS >= 7'] | |
}; | |
function getPackageJsonVersion() { | |
// We parse the json file instead of using require because require caches | |
// multiple calls so the version number won't be updated | |
return JSON.parse(fs.readFileSync('./package.json', 'utf8')).version; | |
}; | |
gulp.task('styles', function () { | |
return gulp.src('src/scss/all.scss') | |
.pipe(plugins.sass(plugins.sass(sassOptions).on('error', plugins.sass.logError))) | |
.pipe(plugins.autoprefixer(autoprefixerOptions)) | |
.pipe(gulp.dest('public/assets/css')) | |
.pipe(plugins.rename({suffix: '.' + getPackageJsonVersion() + '.min'})) | |
.pipe(plugins.cssnano()) | |
.pipe(gulp.dest('public/assets/css')) | |
.pipe(plugins.notify({message: 'Styles task complete'})); | |
}); | |
gulp.task('scripts', function () { | |
return gulp.src('src/scripts/**/*.js') | |
.pipe(plugins.jshint('.jshintrc')) | |
.pipe(plugins.jshint.reporter('default')) | |
.pipe(plugins.concat('all.js')) | |
.pipe(gulp.dest('public/assets/js')) | |
.pipe(plugins.rename({suffix: '.' + getPackageJsonVersion() + '.min'})) | |
.pipe(plugins.uglify()) | |
.pipe(gulp.dest('public/assets/js')) | |
.pipe(plugins.notify({message: 'Scripts task complete'})); | |
}); | |
gulp.task('clean', function () { | |
return del(['public/assets/css', 'public/assets/js']); | |
}); | |
gulp.task('bump-version', ['clean'], function () { | |
return gulp.src(["./package.json"]) | |
.pipe(plugins.bump({type: "patch"})) | |
.pipe(gulp.dest("./")); | |
}); | |
gulp.task('default', ['bump-version'], function () { | |
gulp.start('styles', 'scripts'); | |
}); | |
gulp.task('watch', function () { | |
// Create LiveReload server | |
plugins.livereload.listen(); | |
// Watch .scss files | |
gulp.watch('src/scss/**/*.scss', ['styles']); | |
// Watch .js files | |
gulp.watch('src/scripts/**/*.js', ['scripts']); | |
// Watch any files in public/, reload on change | |
gulp.watch(['public/**']).on('change', plugins.livereload.changed); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment