Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- var gulp = require('gulp'),
- watch = require('gulp-watch'),
- prefixer = require('gulp-autoprefixer'),
- uglify = require('gulp-uglify'),
- sass = require('gulp-sass'),
- sourcemaps = require('gulp-sourcemaps'),
- rigger = require('gulp-rigger'),
- cssmin = require('gulp-minify-css'),
- imagemin = require('gulp-imagemin'),
- pngquant = require('imagemin-pngquant'),
- rimraf = require('rimraf'),
- browserSync = require("browser-sync"),
- reload = browserSync.reload;
- var path = {
- build: {
- html: 'build/',
- js: 'build/js/',
- css: 'build/css/',
- img: 'build/img/',
- fonts: 'build/fonts/'
- },
- src: {
- html: 'src/*.html',
- js: 'src/js/main.js',
- style: 'src/style/main.scss',
- img: 'src/img/**/*.*',
- fonts: 'src/fonts/**/*.*'
- },
- watch: {
- html: 'src/**/*.html',
- js: 'src/js/**/*.js',
- style: 'src/style/**/*.scss',
- img: 'src/img/**/*.*',
- fonts: 'src/fonts/**/*.*'
- },
- clean: './build'
- };
- var config = {
- server: {
- baseDir: "./build"
- },
- tunnel: true,
- host: 'localhost',
- port: 9000,
- logPrefix: "Frontend_Devil"
- };
- gulp.task('webserver', function () {
- browserSync(config);
- });
- gulp.task('clean', function (cb) {
- rimraf(path.clean, cb);
- });
- gulp.task('html:build', function () {
- gulp.src(path.src.html)
- .pipe(rigger())
- .pipe(gulp.dest(path.build.html))
- .pipe(reload({stream: true}));
- });
- gulp.task('js:build', function () {
- gulp.src(path.src.js)
- .pipe(rigger())
- .pipe(sourcemaps.init())
- .pipe(uglify())
- .pipe(sourcemaps.write())
- .pipe(gulp.dest(path.build.js))
- .pipe(reload({stream: true}));
- });
- gulp.task('style:build', function () {
- gulp.src(path.src.style)
- .pipe(sourcemaps.init())
- .pipe(sass({
- sourceMap: true,
- errLogToConsole: true
- }))
- .pipe(prefixer())
- .pipe(cssmin())
- .pipe(sourcemaps.write())
- .pipe(gulp.dest(path.build.css))
- .pipe(reload({stream: true}));
- });
- gulp.task('image:build', function () {
- gulp.src(path.src.img)
- .pipe(imagemin({
- progressive: true,
- svgoPlugins: [{removeViewBox: false}],
- use: [pngquant()],
- interlaced: true
- }))
- .pipe(gulp.dest(path.build.img))
- .pipe(reload({stream: true}));
- });
- gulp.task('fonts:build', function() {
- gulp.src(path.src.fonts)
- .pipe(gulp.dest(path.build.fonts))
- });
- gulp.task('build', [
- 'html:build',
- 'js:build',
- 'style:build',
- 'fonts:build',
- 'image:build'
- ]);
- gulp.task('watch', function(){
- watch([path.watch.html], function(event, cb) {
- gulp.start('html:build');
- });
- watch([path.watch.style], function(event, cb) {
- gulp.start('style:build');
- });
- watch([path.watch.js], function(event, cb) {
- gulp.start('js:build');
- });
- watch([path.watch.img], function(event, cb) {
- gulp.start('image:build');
- });
- watch([path.watch.fonts], function(event, cb) {
- gulp.start('fonts:build');
- });
- });
- gulp.task('default', ['build', 'webserver', 'watch']);
Add Comment
Please, Sign In to add comment