Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { watch, series, parallel, src, dest } = require('gulp');
- const sass = require('gulp-sass');
- const clean = require('gulp-clean');
- const pug = require('gulp-pug');
- const concat = require('gulp-concat');
- const autoprefixer = require('gulp-autoprefixer');
- const browsersync = require('browser-sync').create();
- //const cssnano = require('gulp-cssnano');
- const uglify = require('gulp-uglify');
- //const imagemin = require('gulp-imagemin');
- //const htmlmin = require('gulp-htmlmin');
- function clean_app(cb) {
- src('./app', { allowEmpty: true }, {
- read: false
- })
- .pipe(clean());
- cb();
- }
- function clean_build(cb) {
- src('./build', { allowEmpty: true }, {
- read: false
- })
- .pipe(clean());
- cb();
- }
- function styles(cb) {
- src([
- './src/styles/application.scss',
- ])
- .pipe(sass())
- .pipe(concat('build.css'))
- .pipe(dest('./app/css'))
- .pipe(browsersync.stream());
- cb();
- }
- function styles_build(cb) {
- src([
- './src/styles/application.scss',
- ])
- .pipe(sass())
- .pipe(autoprefixer({
- browsers: ['last 2 versions'],
- cascade: false
- }))
- .pipe(concat('build.css'))
- //.pipe(cssnano())
- .pipe(dest('./build/css'));
- cb();
- }
- function scripts(cb) {
- src([
- 'node_modules/jquery/dist/jquery.min.js',
- 'node_modules/gsap/src/minified/TweenMax.min.js',
- 'node_modules/gsap/src/minified/TimelineMax.min.js',
- 'node_modules/gsap/src/minified/easing/EasePack.min.js',
- 'node_modules/gsap/src/minified/plugins/ScrollToPlugin.min.js',
- 'node_modules/scrollmagic/scrollmagic/minified/ScrollMagic.min.js',
- 'node_modules/scrollmagic/scrollmagic/minified/plugins/animation.gsap.min.js',
- 'node_modules/scrollmagic/scrollmagic/minified/plugins/debug.addIndicators.min.js',
- './src/scripts/**/*.js'
- ])
- .pipe(concat('build.js'))
- .pipe(dest('./app/js'))
- .pipe(browsersync.stream());
- cb();
- }
- function scripts_build(cb) {
- src([
- 'node_modules/jquery/dist/jquery.min.js',
- 'node_modules/gsap/src/minified/TweenMax.min.js',
- 'node_modules/gsap/src/minified/TimelineMax.min.js',
- 'node_modules/gsap/src/minified/easing/EasePack.min.js',
- 'node_modules/gsap/src/minified/plugins/ScrollToPlugin.min.js',
- 'node_modules/scrollmagic/scrollmagic/minified/ScrollMagic.min.js',
- 'node_modules/scrollmagic/scrollmagic/minified/plugins/animation.gsap.min.js',
- 'node_modules/scrollmagic/scrollmagic/minified/plugins/debug.addIndicators.min.js',
- './src/scripts/**/*.js'
- ])
- .pipe(uglify())
- .pipe(concat('build.js'))
- .pipe(dest('./build/js'));
- cb();
- }
- function images(cb) {
- src('./src/images/**/*.{gif,jpg,png,svg}')
- .pipe(dest('./app/img'))
- .pipe(browsersync.stream());
- cb();
- }
- function images_build(cb) {
- src('./src/images/**/*.{gif,jpg,png,svg}')
- //.pipe(imagemin())
- .pipe(dest('./build/img'));
- cb();
- }
- function fonts(cb) {
- src('./src/fonts/**/*')
- .pipe(dest('./app/css/fonts'))
- .pipe(browsersync.stream());
- cb();
- }
- function fonts_build(cb) {
- src('./src/fonts/**/*')
- .pipe(dest('./build/css/fonts'));
- cb();
- }
- function views(cb) {
- src('./src/views/**/*.pug')
- .pipe(pug({
- pretty: true
- }))
- .pipe(dest('./app'))
- .pipe(browsersync.stream());
- cb();
- }
- function views_build(cb) {
- src('./src/views/**/*.pug')
- .pipe(pug({
- pretty: false
- }))
- // .pipe(htmlmin({
- // collapseWhitespace: true
- // }))
- .pipe(dest('./build'));
- cb();
- }
- function public(cb) {
- src('./src/public/**/*')
- .pipe(dest('./app'))
- .pipe(browsersync.stream());
- cb();
- }
- function public_build(cb) {
- src('./src/public/**/*')
- .pipe(dest('./build'));
- cb();
- }
- function server(cb) {
- browsersync.init({
- server: {
- baseDir: './app'
- }
- });
- watch('./src/styles/**/*.scss', styles);
- watch('./src/scripts/**/*.js', scripts);
- watch('./src/images/**/*', images);
- watch('./src/fonts/**/*', fonts);
- watch('./src/views/**/*.pug', views);
- watch('./src/public/**/*', public);
- watch('./app/*.html').on('change', browsersync.reload);
- cb();
- }
- exports.clean = clean_app;
- exports.build = series(public_build, parallel(styles_build, scripts_build, images_build, fonts_build), views_build);
- exports.default = series(public, parallel(styles, scripts, images, fonts), views, server);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement