Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 KB | None | 0 0
  1. //Bootstrap styles
  2. @import "node_modules/bootstrap/scss/bootstrap";
  3.  
  4. //Custom mixins
  5. @import "mixins/mixins";
  6.  
  7. //Custom settings --
  8. @import "settings";
  9.  
  10. // Pages
  11. @import 'pages/login';
  12.  
  13. // Layout
  14. @import 'layout/responsive';
  15.  
  16. //Pegasus specific styles
  17. @import "pegasus";
  18.  
  19. var gulp = require('gulp'),
  20. browserSync = require('browser-sync').create(),
  21. sass = require('gulp-sass'),
  22. del = require('del'),
  23. panini = require('panini'),
  24. sourcemaps = require('gulp-sourcemaps'),
  25. imagemin = require('gulp-imagemin'),
  26. cache = require('gulp-cache'),
  27. runSequence = require('run-sequence'),
  28. minify = require('gulp-minify'),
  29. cssnano = require('gulp-cssnano'),
  30. autoprefixer = require('gulp-autoprefixer');
  31.  
  32.  
  33. // ------------ Development Tasks -------------
  34. // Compile Sass into CSS
  35. gulp.task('sass', function () {
  36. return gulp.src(['src/assets/scss/*.scss'])
  37. .pipe(sourcemaps.init())
  38. .pipe(sass({
  39. outputStyle: 'expanded',
  40. sourceComments: 'map',
  41. sourceMap: 'sass',
  42. outputStyle: 'nested'
  43. }).on('error', sass.logError))
  44. .pipe(autoprefixer('last 2 versions'))
  45. .pipe(cssnano()) // Use cssnano to minify CSS
  46. .pipe(sourcemaps.write('./'))
  47. .pipe(gulp.dest("dist/assets/css"))
  48. .pipe(browserSync.stream());
  49. });
  50.  
  51. // Using panini, template, page and partial files are combined to form html markup
  52. gulp.task('compile-html', function () {
  53. return gulp.src('src/pages/**/*.html')
  54. .pipe(panini({
  55. root: 'src/pages/',
  56. layouts: 'src/layouts/',
  57. partials: 'src/partials/',
  58. helpers: 'src/helpers/',
  59. data: 'src/data/'
  60. }))
  61. .pipe(gulp.dest('dist'));
  62. });
  63.  
  64. // Reset Panini's cache of layouts and partials
  65. gulp.task('resetPages', (done) => {
  66. panini.refresh();
  67. done();
  68. console.log('Clearing panini cache');
  69. });
  70.  
  71. // Watches for changes while gulp is running
  72. gulp.task('watch', ['sass'], function () {
  73. // Live reload with BrowserSync
  74. browserSync.init({
  75. server: "./dist"
  76. });
  77.  
  78. gulp.watch(['src/assets/js/**/*.js'], ['scripts', browserSync.reload]);
  79. gulp.watch(['src/assets/scss/**/*'], ['sass', browserSync.reload]);
  80. gulp.watch(['src/assets/img/**/*'], ['images']);
  81. gulp.watch(['src/assets/video/**/*'], ['media']);
  82. gulp.watch(['src/**/*.html'], ['resetPages', 'compile-html', browserSync.reload]);
  83. console.log('Watching for changes');
  84. });
  85.  
  86.  
  87. // ------------ Optimization Tasks -------------
  88. // Copies image files to dist
  89. gulp.task('images', function () {
  90. return gulp.src('src/assets/img/**/*.+(png|jpg|jpeg|gif|svg)')
  91. .pipe(cache(imagemin ([
  92. imagemin.gifsicle({interlaced: true}),
  93. imagemin.jpegtran({progressive: true}),
  94. imagemin.optipng({optimizationLevel: 5})
  95. ]))) // Caching images that ran through imagemin
  96. .pipe(gulp.dest('dist/assets/img/'));
  97. });
  98.  
  99. // Copies video assets to dist
  100. gulp.task('media', function () {
  101. return gulp.src('src/assets/video/**/*')
  102. .pipe(gulp.dest('dist/assets/video/'));
  103. });
  104.  
  105. // Places font files in the dist folder
  106. gulp.task('font', function () {
  107. return gulp.src('src/assets/fonts/**/*.+(eot|woff|ttf|otf)')
  108. .pipe(gulp.dest("dist/assets/fonts"))
  109. .pipe(browserSync.stream());
  110. });
  111.  
  112. // Concatenating js files
  113. gulp.task('scripts', function () {
  114. return gulp.src('src/assets/js/app.js')
  115. .pipe(sourcemaps.init())
  116. //If concatenating more than one JS file
  117. //.pipe(concat('app.js'))
  118. .pipe(sourcemaps.write('./'))
  119. .pipe(minify())
  120. .pipe(gulp.dest('dist/assets/js/'))
  121. .pipe(browserSync.stream());
  122. });
  123.  
  124. // Cleaning/deleting files no longer being used in dist folder
  125. gulp.task('clean:dist', function () {
  126. console.log('Removing old files from dist');
  127. return del.sync('dist');
  128. });
  129.  
  130.  
  131. // ------------ Build Sequence -------------
  132. // Simply run 'gulp' in terminal to run local server and watch for changes
  133. gulp.task('default', ['clean:dist', 'font', 'scripts', 'images', 'compile-html', 'resetPages', 'media', 'watch']);
  134.  
  135. // Creates production ready assets in dist folder
  136. gulp.task('build', function () {
  137. console.log('Building production ready assets');
  138. runSequence('clean:dist', 'sass', ['scripts', 'images', 'font', 'compile-html'])
  139. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement