UNPKG

gadmin

Version:

Free Bootstrap 4 Gentelella inspired admin template

79 lines (70 loc) 2.23 kB
const gulp = require('gulp'); const merge = require('merge-stream'); const fileInclude = require('gulp-file-include'); const sass = require('gulp-sass'); const autoprefixer = require('gulp-autoprefixer'); const concat = require('gulp-concat'); const rename = require('gulp-rename'); const uglify = require('gulp-uglify'); const babel = require('gulp-babel'); const prettier = require('gulp-prettier'); gulp.task('build', () => gulp .src(['src/pages/*.html', 'src/pages/**/index.html']) .pipe( fileInclude({ prefix: '@@', basepath: '@file' }) ) .pipe(prettier()) .pipe(gulp.dest('dist')) ); const compileSASS = (directories, filename, outputStyle = 'nested') => gulp .src(directories) .pipe(sass().on('error', sass.logError)) .pipe(autoprefixer('last 2 versions', '> 5%')) .pipe(sass({ outputStyle })) .pipe(concat(filename)) .pipe(gulp.dest('dist/assets/css')); gulp.task('sass', () => { const path = { bootstrap: 'src/assets/scss/bootstrap/*.scss', theme: [ 'src/assets/scss/theme/*.scss', 'src/partials/**/*.scss', 'src/assets/scss/libraries/*.scss' ], excludable: 'src/assets/scss/excludable.scss' }; return merge( compileSASS(path.theme, 'theme.css'), compileSASS(path.bootstrap, 'bootstrap.css'), compileSASS(path.excludable, 'excludable.css'), compileSASS(path.theme, 'theme.min.css', 'compressed'), compileSASS(path.bootstrap, 'bootstrap.min.css', 'compressed'), compileSASS(path.excludable, 'excludable.min.css', 'compressed') ); }); gulp.task('scripts', () => gulp .src('src/**/*.js') .pipe( babel({ presets: ['es2015'] }) ) .pipe(concat('custom.js')) .pipe(gulp.dest('dist/assets/js')) .pipe(rename({ suffix: '.min' })) .pipe(uglify()) .pipe(gulp.dest('dist/assets/js')) ); gulp.task('watch', () => { gulp.watch(['src/**/*.html', 'src/**/*.json'], gulp.series('build')); gulp.watch('src/**/*.scss', gulp.series('sass')); gulp.watch('src/**/*.js', gulp.series('scripts')); }); gulp.task('ci', gulp.parallel('build', 'sass', 'scripts')); gulp.task('default', gulp.parallel('build', 'sass', 'scripts', 'watch'));