Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var gulp = require('gulp'),
- gulpif = require('gulp-if'),
- sprite = require('css-sprite').stream,
- sass = require('gulp-sass'),
- autoprefixer = require('gulp-autoprefixer'),
- minifycss = require('gulp-minify-css'),
- rename = require('gulp-rename'),
- notify = require('gulp-notify'),
- clean = require('gulp-clean'),
- watch = require('gulp-watch'),
- svgSprite = require('gulp-svg-sprite'),
- plumber = require('gulp-plumber'),
- path = require('path'),
- concat = require('gulp-concat'),
- uglify = require('gulp-uglify'),
- sourcemaps = require('gulp-sourcemaps'),
- browserSync = require('browser-sync'),
- reload = browserSync.reload,
- svgmin = require('svgmin'),
- svgspritesheet = require('gulp-svg-spritesheet'),
- gulpif = require('gulp-if'),
- scsslint = require('gulp-scss-lint'),
- fontcustom = require('fontcustom');
- var notifyInfo = {
- title: 'Gulp',
- icon: path.join(__dirname, 'gulp.png')
- };
- //error notification settings for plumber
- var plumberErrorHandler = { errorHandler: notify.onError({
- title: notifyInfo.title,
- icon: notifyInfo.icon,
- message: "Error: <%= error.message %>"
- })
- };
- // JS plugins
- gulp.task('plugins', function() {
- return gulp.src('./src/js/plugins/*.js')
- .pipe(plumber(plumberErrorHandler))
- .pipe(concat('plugins.js'))
- .pipe(gulp.dest('./public/build/js'))
- .pipe(rename({ suffix: '.min' }))
- .pipe(uglify())
- .pipe(gulp.dest('./public/build/js'));
- });
- //scripts
- gulp.task('scripts', function() {
- return gulp.src('./src/js/*.js')
- .pipe(plumber(plumberErrorHandler))
- .pipe(concat('site.js'))
- .pipe(gulp.dest('./public/build/js'))
- .pipe(rename({ suffix: '.min' }))
- .pipe(uglify())
- .pipe(gulp.dest('./public/build/js'));
- });
- //scripts
- gulp.task('jsbuild', function() {
- return gulp.src(['./public/build/js/plugins.js', './public/build/js/site.js'])
- .pipe(plumber(plumberErrorHandler))
- .pipe(concat('main.js'))
- .pipe(gulp.dest('./public/build/js'))
- .pipe(rename({ suffix: '.min' }))
- .pipe(uglify())
- .pipe(gulp.dest('./public/build/js'));
- });
- var bsconfig = {
- // 1. inform browser-sync to watch compiled *.css files instead of *.scss sass files
- files: ["./public/build/css/**/*.css", "./craft/templates/**/*.twig"],
- proxy: "tgcaus.craft.dev"
- }
- baseDir = './src/lib/svgsprite', // <-- Set to your SVG base directory
- svgGlob = '**/*.svg', // <-- Glob to match your SVG files
- outDir = './public/build', // <-- Main output directory
- config = {
- "mode": {
- "view": {
- "prefix": "tgc-%s",
- "sprite": "../svg/sprite.view.svg",
- "render": {
- "scss": {
- "dest": "../../../src/scss/_svgsprite.scss"
- }
- },
- "example": true
- }
- }
- };
- gulp.task('svgsprite', function() {
- return gulp.src(svgGlob, {cwd: baseDir})
- .pipe(plumber())
- .pipe(svgSprite(config)).on('error', function(error){ console.log(error); })
- .pipe(gulp.dest(outDir))
- });
- gulp.task('svgsprite', function() {
- return gulp.src(svgGlob, {cwd: baseDir})
- .pipe(plumber())
- .pipe(svgSprite(config)).on('error', function(error){ console.log(error); })
- .pipe(gulp.dest(outDir))
- });
- // browser-sync task for starting the server.
- gulp.task('browser-sync', function() {
- browserSync(bsconfig)
- });
- // Clean
- gulp.task('clean', function() {
- return gulp.src(['./public/build/css/'], {read: false})
- .pipe(clean())
- .pipe(notify({
- "message": "CSS cleaned",
- "sound": "Glass",
- }));
- });
- gulp.task('sass', function() {
- gulp.task('clean');
- return gulp.src(['./src/scss/**/*.scss'])
- // .pipe(sourcemaps.init())
- .pipe(plumber(plumberErrorHandler))
- .pipe(sass())
- // .pipe(sourcemaps.write())
- .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 7', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
- .pipe(gulp.dest('./public/build/css'))
- .pipe(rename({ suffix: '.min' }))
- .pipe(minifycss())
- .pipe(gulp.dest('./public/build/css'))
- .pipe(notify("Hey y'all, I just built the CSS"))
- });
- // generate sprite.png and _sprite.scss
- gulp.task('sprites', function () {
- return gulp.src('src/lib/pngsprite/**/*.png')
- .pipe(sprite({
- name: 'pngsprite',
- style: '_pngsprite.scss',
- cssPath: '../img',
- processor: 'scss',
- prefix: 'pngsprite',
- retina: true,
- margin: 5
- }))
- .pipe(gulpif('*.png', gulp.dest('./public/build/img/')))
- .pipe(gulpif('*.scss', gulp.dest('./src/scss/')));
- });
- // generate scss with base64 encoded images
- gulp.task('base64', function () {
- return gulp.src('./src/img/*.png')
- .pipe(sprite({
- base64: true,
- style: '_base64.scss',
- processor: 'scss'
- }))
- .pipe(gulp.dest('./src/scss/'));
- });
- gulp.task('scss-lint', function() {
- gulp.src('./src/scss/**/*.scss')
- .pipe(scsslint({'config': './src/scss/scsslint.yml'}));
- });
- // custom icons
- gulp.task('icons', function() {
- return fontcustom({
- "config": './fontcustom.yml',
- "noisy": true
- });
- });
- gulp.task('watch', function() {
- gulp.watch('./src/scss/**/*.scss', ['sass']);
- });
- // Default task to be run with `gulp`
- gulp.task('default', ['sass','browser-sync'], function () {
- gulp.watch("./src/scss/**/*.scss", ['sass']);
- gulp.watch("./craft/templates/**/*.twig");
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement