Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- var gulp = require('gulp');
- var rename = require('gulp-rename');
- var sass = require('gulp-sass');
- var autoprefixer = require('gulp-autoprefixer');
- var minifyCSS = require('gulp-minify-css');
- var imagemin = require('gulp-imagemin');
- var uglify = require('gulp-uglify');
- var svgmin = require('gulp-svgmin');
- var svgstore = require('gulp-svgstore');
- var cheerio = require('gulp-cheerio');
- var clean = require('gulp-clean');
- // gulp.task('connect', function () {
- // connect.server({
- // root: "build",
- // port: 9000,
- // livereload: false
- // });
- // });
- var paths = {
- styles: {
- src: 'src/scss/*.scss',
- dest: '../dist/css/',
- watch: 'src/scss/**/*.scss'
- },
- scripts: {
- src: '../dist/js/',
- dest: '../dist/js/'
- },
- images: {
- src: '../dist/images/*',
- dest: 'src/img-compress/'
- },
- icons:{
- src: 'src/icons/icons__src/*.svg',
- srcmin: 'src/icons/icons__min/',
- dest: 'src/icons/'
- }
- }
- //default
- gulp.task('default', function () {
- // gulp.src(paths.styles.src)
- // .pipe(sass())
- // .pipe(autoprefixer({
- // browsers: ['last 3 versions', '> 5%']
- // }))
- // .pipe(minifyCSS())
- // .pipe(rename('bundle.min.css'))
- // .pipe(gulp.dest(paths.styles.dest));
- });
- //scss / autoprefixer
- gulp.task('scss', function(){
- gulp.src(paths.styles.src)
- .pipe(sass())
- .pipe(autoprefixer({
- browsers: ['last 2 versions']
- }))
- .pipe(rename('all.css'))
- .pipe(gulp.dest(paths.styles.dest));
- });
- // gulp.task('autoprefixer', function(){
- // gulp.src(paths.styles.dest + 'all.css')
- // .pipe(autoprefixer({
- // browsers: ['last 2 versions']
- // }))
- // .pipe(gulp.dest(paths.styles.dest));
- // });
- //icons tasks
- gulp.task('icons-min', function () {
- return gulp.src(paths.icons.src)
- .pipe(svgmin())
- .pipe(gulp.dest(paths.icons.srcmin));
- });
- gulp.task('icons', function (){
- return gulp.src(paths.icons.srcmin + '*.svg')
- .pipe(rename({prefix: 'icon-'}))
- .pipe(cheerio({
- run: function($){
- $('[fill]').removeAttr('fill');
- },
- parserOptions: { xmlMode: true }
- }))
- .pipe(svgstore({inlineSvg:true}))
- .pipe(cheerio({
- run: function ($) {
- $('svg').attr('style', 'display:none');
- },
- parserOptions: { xmlMode: true }
- }))
- .pipe(rename('svg-defs.svg'))
- .pipe(gulp.dest(paths.icons.dest));
- });
- //finish tasks
- gulp.task('css-minify', function(){
- gulp.src(paths.styles.dest + 'all.css')
- .pipe(minifyCSS())
- .pipe(rename('all.min.css'))
- .pipe(gulp.dest(paths.styles.dest));
- });
- gulp.task('images-compress', function(){
- gulp.src(paths.images.src)
- .pipe(imagemin())
- .pipe(gulp.dest(paths.images.dest));
- });
- gulp.task('js-minify', function(){
- gulp.src(paths.scripts.src + 'main.js')
- .pipe(uglify())
- .pipe(rename('main.min.js'))
- .pipe(gulp.dest(paths.scripts.dest));
- });
- //clean
- gulp.task('clean', function(){
- gulp.src('node_modules', {read: false})
- .pipe(clean());
- });
- //watch
- gulp.task('watch', function(){
- // gulp.watch('src/**/*.scss', ['default']);
- gulp.watch(paths.styles.watch, ['scss', 'autoprefixer']);
- });
- //
- // gulp.task('styles-run', ['scss', 'autoprefixer']);
- gulp.task('styles-run', ['scss']);
- gulp.task('icons-run', ['icons-min', 'icons']);
- gulp.task('finish', ['css-minify', 'images-compress', 'js-minify']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement